深度优化Nginx负载均衡策略,携手Keepalived打造高可用服务架构新纪元

  •  作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
  •  座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  •  个人主页:团儿.-CSDN博客

目录

前言:

让我们首先来谈谈容灾与备份策略:

实验目标:七台虚拟机集群利用Nginx负载均衡与Keepalived共筑高可用服务架构

Lb1  192.168.8.5的配置

1.rpm安装nginx

2.进入到mnt下的nginx下,并进行安装

3.启动服务

4.删除默认配置文件

5.创建新的配置文件

6.重启服务并查看端口

7.将/etc/nginx下的所有东西拷贝到lb2上

8.创建优化项文件,网站配置文件直接调用

9.安装keepalived

10.配置keepalived

11.启动服务:

12.解决nginx故障造成群集无法工作

13.添加脚本追踪模块到keepalived配置文件

14.主服务器添加计划任务

15.主服务器关闭nginx,测试keepalived地址漂移

Lb2  192.168.8.6的配置

1.rpm安装nginx

2.进入到mnt下的nginx下,并进行安装

3.启动服务

4.删除默认配置文件

5.拷贝好后重启服务

6.创建优化项文件,网站配置文件直接调用(选做,但推荐)

7.安装keepalived

Web1 192.168.8.7的配置

1.pm安装nginx

2.进入到mnt下的nginx下,并进行安装

3.启动服务

4.删除默认配置文件

5.拷贝好后重启服务

6.重启服务,并将网页根目录拷贝到php8.9上

7.将网页根目录拷贝到nfs8.11上

8.查看并挂载

Php 192.168.8.9的配置

1.192.168.8.9安装php

2.进入/mnt/php-rpm/安装相关的包

3.启动php服务,设置服务自启,并查看端口

4.修改php服务器的配置文件

5.重启php服务

Mysql 192.168.8.10的配置

1.192.168.8.9安装mysql

2.启动服务

3.创建数据库和用户

客户端进行访问

Web2  192.168.8.8的配置

1.rpm  安装nginx

2.进入到mnt下的nginx下,并进行安装

3.安装完成后启动服务

4.删除默认配置文件

5.复制wordpress安装包,到虚拟机/,解压并赋权

6.创建虚拟主机配置文件

7.将网页根目录及nginx拷贝到web1上

客户端进行访问


前言:

在当今这个信息爆炸的时代,互联网企业面临的一个重大挑战是如何确保其服务的稳定性和持续性,特别是在应对大规模访问请求时。 为此,构建一个高可用的服务架构显得尤为重要。

这种架构不仅能够提升系统的整体性能,还能够在发生故障时快速恢复,保证服务的不间断。 高可用性,简言之,指的是系统在遇到故障或异常情况时依然能够继续运行的能力。 构建高可用架构的目标,就是要让系统在面对各种不可预见的故障场景时,仍能保持稳定、可靠并保持高性能运作。

那么,如何实现这样的架构呢?


让我们首先来谈谈容灾与备份策略:

这是保障系统可用性的第一道防线。 通过多活数据中心部署、数据备份以及数据复制等策略,即便发生了灾难性故障,系统也能实现快速恢复。

接着是负载均衡: 

这一技术能将流量智能地分散到多个服务器上,有效避免单点故障,同时提升系统的可用性和性能。 而说到弹性伸缩,它允许系统根据当前负载的变化,动态调整服务器的数量和配置,以保持系统的高性能和高可用性。障检测和自动恢复则利用了监控工具和自动化脚本,实时监测系统的健康状况,并在发现异常时迅速采取恢复措施。

最后,安全性和可靠性是构建任何系统的基石。 通过数据加密、访问控制等安全措施,可以确保系统数据的保密性和完整性。


实验目标:七台虚拟机集群利用Nginx负载均衡与Keepalived共筑高可用服务架构

实验拓扑:Lb1  192.168.8.5

                  Lb2  192.168.8.6

                  Web1  192.168.8.7

                  Web2  192.168.8.8

                  Php    192.168.8.9

                 Mysql  192.168.8.10

Lb1  192.168.8.5的配置

1.rpm安装nginx

卸载原来镜像,挂载软件镜像

umount /dev/cdrom

mount /dev/cdrom /mnt/

2.进入到mnt下的nginx下,并进行安装

cd /mnt/nginx-rpm/

rpm -ivh * --nodeps --force

3.启动服务

systemctl  start  nginx


4.删除默认配置文件

91fd63fd31bf4c69b3ffb38520d67a60.png


5.创建新的配置文件

vim /etc/nginx/conf.d/lb1.conf

添加:

upstream web {server 192.168.8.7:80;server 192.168.8.8:80;
}
server {listen 80;server_name www.abc.com;location / {proxy_pass      http://web;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
}


6.重启服务并查看端口

systemctl restart nginxnetstat -anptl | grep nginx


7.将/etc/nginx下的所有东西拷贝到lb2上

scp -rp /etc/nginx/* root@192.168.8.6:/etc/nginx/

8.创建优化项文件,网站配置文件直接调用

添加:

cat >> /etc/nginx/nginx_params << ENDproxy_set_header Host \$http_host;proxy_set_header X-Real-IP \$remote_addr;proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;proxy_connect_timeout 30;proxy_send_timeout 60;proxy_read_timeout 60;proxy_buffering on;proxy_buffer_size 32k;proxy_buffers 4 128k;END

网站配置调用

vim /etc/nginx/conf.d/lb1.conf

修改为:

server {listen 80;server_name www.abc.com;location / {proxy_pass http:web;include nginx_params;}}}

保存退出

重启nginx:systemctl restart nginx


9.安装keepalived

yum -y install keepalived

10.配置keepalived

主服务器:lb1

vim /etc/keepalived/keepalived.conf

修改为:

> /etc/keepalived/keepalived.confcat >> /etc/keepalived/keepalived.conf << END
global_defs {router_id lb1
}
vrrp_script check_nginx_proxy {script “/sh/check_nginx_proxy.sh”interval 2weight 5}
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.8.254}track_script {check_nginx_proxy}
}
END

保存退出

11.启动服务:

systemctl restart keepalived

12.解决nginx故障造成群集无法工作

编辑nginx监控脚本

mkdir /sh

cat >> /sh/check_nginx_proxy.sh << END#!/bin/bashkillall  -0  nginxif  [ \$? -ne 0 ];thensystemctl stop keepalivedfiEND

chmod  +x  /sh/check_nginx_proxy.sh


13.添加脚本追踪模块到keepalived配置文件

vim /etc/keepalived/keepalived.conf

保存退出

重启服务:systemctl restart keepalived

关闭nginx   


14.主服务器添加计划任务

crontab -e

* * * * * /bin/bash /sh/check_nginx_proxy.sh

15.主服务器关闭nginx,测试keepalived地址漂移


Lb2  192.168.8.6的配置

1.rpm安装nginx

卸载原来镜像,挂载软件镜像

umount /dev/cdrommount /dev/cdrom /mnt/

2.进入到mnt下的nginx下,并进行安装

cd /mnt/nginx-rpm/rpm -ivh * --nodeps --force

3.启动服务

systemctl  start  nginx

4.删除默认配置文件


5.拷贝好后重启服务


6.创建优化项文件,网站配置文件直接调用(选做,但推荐)

vim /etc/nginx/nginx_params

添加:

cat >> /etc/nginx/nginx_params << ENDproxy_set_header Host \$http_host;proxy_set_header X-Real-IP \$remote_addr;proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;proxy_connect_timeout 30;proxy_send_timeout 60;proxy_read_timeout 60;proxy_buffering on;proxy_buffer_size 32k;proxy_buffers 4 128k;END

保存退出

网站配置调用

vim /etc/nginx/conf.d/lb.conf

修改为:

server {listen 80;server_name www.abc.com;location / {proxy_pass http://web;include nginx_params;}}}

保存退出

重启nginx:systemctl restart nginx


7.安装keepalived

yum -y install keepalived

备服务器:lb2

vim /etc/keepalived/keepalived.conf

修改为:

>/etc/keepalived/keepalived.conf

cat >> /etc/keepalived/keepalived.conf << ENDglobal_defs {router_id lb2}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.8.254}}END

保存退出

启动服务:systemctl restart keepalived


Web1 192.168.8.7的配置

1.pm安装nginx

卸载原来镜像,挂载软件镜像

umount /dev/cdrommount /dev/cdrom /mnt/

2.进入到mnt下的nginx下,并进行安装

cd /mnt/nginx-rpm/rpm -ivh * --nodeps --force

3.启动服务

systemctl  start  nginx

4.删除默认配置文件

rm   -rf   /etc/nginx/conf.d/default

5.拷贝好后重启服务


6.重启服务,并将网页根目录拷贝到php8.9上

systemctl  restart   nginxscp -rp /wordpress root@192.168.8.9:/

7.将网页根目录拷贝到nfs8.11上

 scp -rp /wordpress/* root@192.168.8.11:/data

8.查看并挂载

mount   |   grep   datashowmount-e 192.168.8.11mount -t nfs 192.168.8.10:/data /wordpress/echo "192.168.8.10:/data /wordpress nfs defaults 00" >>/etc/fstab

Php 192.168.8.9的配置

1.192.168.8.9安装php

2.进入/mnt/php-rpm/安装相关的包

cd /mnt/php-rpm/rpm -ivh * --nodeps --force

3.启动php服务,设置服务自启,并查看端口


4.修改php服务器的配置文件

vim /etc/php-fpm.d/www.conf


5.重启php服务

systemctl  start  php-fpm

Mysql 192.168.8.10的配置

1.192.168.8.9安装mysql

2.启动服务


3.创建数据库和用户

mysql

create database blog;grant all on blog.* to blog@'%' identified by '123';flush privileges;

客户端进行访问

Web2  192.168.8.8的配置

1.rpm  安装nginx

卸载原来镜像,挂载软件镜像

umount /dev/cdrommount /dev/cdrom /mnt/

2.进入到mnt下的nginx下,并进行安装

cd /mnt/nginx-rpm/rpm -ivh * --nodeps --force

3.安装完成后启动服务

systemctl  start  nginx

4.删除默认配置文件


5.复制wordpress安装包,到虚拟机/,解压并赋权


6.创建虚拟主机配置文件

cd  /etc/nginx/conf.d

vim  web.conf


7.将网页根目录及nginx拷贝到web1上

scp -rp /wordpress root@192.168.8.7:/scp -rp /etc/nginx/* root@192.168.8.7:/etc/nginx

客户端进行访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/400518.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE初阶】文件操作和IO

目录 &#x1f334;认识文件 &#x1f6a9;树型结构组织和目录 &#x1f6a9;文件路径&#xff08;Path&#xff09; &#x1f6a9; 文件分类 &#x1f38d;Java 中操作文件 &#x1f6a9; File 概述&#xff1a; &#x1f4cc;属性 &#x1f4cc;构造方法 &#x1f4c…

企业大模型业务架构技术选型分析

AI赋能企业&#xff1a;选择适合你的大模型业务架构 现代企业中&#xff0c;大模型业务日益普及&#xff0c;主要涵盖AI Embedded、AI Copilot和AI Agent三大架构。本文深入剖析其特性与适用场景&#xff0c;为企业选择合适的大模型业务架构提供指导&#xff0c;助力企业高效应…

Spring容器启动的过程(main)

大体流程如下 1、初始化 首先&#xff0c;Spring会通过用户提供的配置信息&#xff08;例如XML文件或者注解&#xff09;来初始化一个BeanFactory&#xff0c;这个BeanFactory是Spring容器的核心&#xff0c;它负责创建和管理所有的Bean。 2、读取配置生成并注册BeanDefini…

开源一套金融大模型插件(ChatGPT)

shares vscode 插件A 股量化交易系统自研金融大模型&#xff0c;复利Chat 源码地址&#xff1a; https://github.com/xxjwxc/shares

面试题:Rabbitmq怎么保证消息的可靠性?

1.消费端消息可靠性保证&#xff1a; 消息确认&#xff08;Acknowledgements&#xff09;&#xff1a;(自动(默认),手动) 消费者在接收到消息后&#xff0c;默认情况下RabbitMQ会自动确认消息&#xff08;autoAcktrue&#xff09;。为保证消息可靠性&#xff0c;可以设置auto…

CentOS 7设置静态IP地址的详细指南

CentOS 7设置静态IP地址的详细指南 配置静态IP地址是服务器或虚拟机管理的重要步骤之一&#xff0c;特别是在需要稳定、可预测的网络环境时。本文将详细介绍如何在CentOS 7上设置静态IP地址&#xff0c;帮助确保你的系统网络配置符合需求。 1. 查看当前网络配置 在进行任何更…

文件长度超出芯片容量, 超出部份将被忽略!ch341a编程器报错解决方法

出现这个错误提示&#xff0c;说明你正在刷的是华硕主板的cap格式BIOS文件。 编程器不支持这种文件&#xff0c;需要转换成编程器专用版本BIOS文件。 华硕cap格式BIOS转编程器bios文件&#xff0c;转换工具下载地址&#xff1a;https://download.csdn.net/download/baiseled/88…

再见Figma!!新的设计,代码协作神器!【送源码】

软件介绍 Penpot 是一款专门用来帮助设计师和开发者更好地合作的软件。它可以让设计师轻松地做出漂亮的设计稿&#xff0c;还能让这些设计稿变成真正的网站或者应用的一部分。这样&#xff0c;设计师和开发者之间就不会因为沟通不畅而产生麻烦了。 Penpot 专为设计师与开发者之…

在docker中进行日志切割

先在Linux中安装docker&#xff0c;然后在docker中安装appnode面板&#xff0c;并进行docker网络端口映射。接着进入docker&#xff0c;进行nginx日志切割。 安装docker 第一步&#xff0c;卸载旧版本docker。 若系统中已安装旧版本docker&#xff0c;则需要卸载旧版本docke…

书生大模型实战营-基础关-XTuner 微调个人小助手认知

XTuner 微调个人小助手认知 环境配置模型效果预览微调数据准备微调配置微调训练权重格式转换模型合并页面对话 环境配置 # 创建虚拟环境 conda create -n xtuner0812 python3.10 -y# 激活虚拟环境&#xff08;注意&#xff1a;后续的所有操作都需要在这个虚拟环境中进行&#…

Docker搭建Minio容器

Docker搭建Minio容器 前言 在上一集我们介绍了分布式文件存储行业解决方案以及技术选型。最终我们决定选用Minio作为分布式文件存储。 那么这集我们就在Docker上搭建Minio容器即可。 Docker搭建Minio容器步骤 创建Minio文件目录 我们选择创建/minio/data目录 修改目录权…

40.x86游戏实战-找出XXX遍历周围的类型

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

【C#】中IndexOf的用法

在 C# 中&#xff0c;IndexOf 方法是字符串和列表&#xff08;如 List<T>&#xff09;等数据结构中常用的方法&#xff0c;用于查找指定元素或子串首次出现的位置。以下是针对不同情况使用 IndexOf 的示例。 对于字符串 对于字符串类型&#xff0c;IndexOf 方法返回子字…

scanpy切换显示颜色总结

函数实现 import scanpy as sc adata sc.datasets.pbmc68k_reduced() print(adata) sc.pl.umap(adata,color["bulk_labels"])def change_show_color(adata,label,category_listNone,color_listNone):for i in range(len(color_list)):if(len(color_list[i])7):colo…

【人工智能】Transformers之Pipeline(九):物体检测(object-detection)

目录​​​​​​​ 一、引言 二、物体检测&#xff08;object-detection&#xff09; 2.1 概述 2.2 技术原理 2.3 应用场景 2.4 pipeline参数 2.4.1 pipeline对象实例化参数 2.4.2 pipeline对象使用参数 2.4 pipeline实战 2.5 模型排名 三、总结 一、引言 pipel…

Chromium编译指南2024 - Android篇:前置要求(一)

1.引言 欢迎阅读《Chromium编译指南2024 - Android篇》。本指南旨在帮助开发者理解和掌握在Android平台上编译Chromium的全过程。Chromium是一个开源的浏览器项目&#xff0c;由Google主导开发&#xff0c;并为多个现代浏览器提供基础代码。Android作为全球使用最广泛的移动操…

[Meachines] [Medium] Magic SQLI+文件上传+跳关TRP00F权限提升+环境变量劫持权限提升

信息收集 IP AddressOpening Ports10.10.10.185TCP:22,80 $ nmap -p- 10.10.10.185 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 06:d4:89:bf:51:…

redis面试(九)锁重入和互斥

可重入 1&#xff09;如果一开始这个锁是没有的&#xff0c;第一次来加锁&#xff0c;这段lua脚本会如何执行&#xff1f; "if (redis.call(‘exists’, KEYS[1]) 0) then " "redis.call(‘hset’, KEYS[1], ARGV[2], 1); " "redis.call(‘pexpi…

[0CTF 2016]piapiapia1

打开题目 看到登录口 字符串绕过长度限制strlen($_POST[nickname]) > 10

C语言中的结构体和位移段

在C语言中&#xff0c;结构体&#xff08;struct&#xff09;是一种用户自定义的数据类型&#xff0c;允许我们将不同类型的变量组合在一起&#xff0c;形成一个复合数据类型。结构体可以包含整型、浮点型、字符型等多种数据类型的成员。例如&#xff0c;我们可以定义一个表示人…