0


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

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

前言:

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

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

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


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

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

接着是负载均衡:

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

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


实验目标:七台虚拟机集群利用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 nginx

netstat -anptl | grep nginx


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

scp -rp /etc/nginx/* [email protected]:/etc/nginx/

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

添加:

cat >> /etc/nginx/nginx_params << END

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;

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.conf

cat >> /etc/keepalived/keepalived.conf << END
global_defs {
   router_id lb1
}
vrrp_script check_nginx_proxy {
        script “/sh/check_nginx_proxy.sh”
        interval 2
        weight 5
        }
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_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/bash

killall  -0  nginx

if  [ \$? -ne 0 ];then

  systemctl stop keepalived

fi

END

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/cdrom

mount /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 << END

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;

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 << END

global_defs {

   router_id lb2

}

vrrp_instance VI_1 {

    state BACKUP

    interface ens33

    virtual_router_id 51

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.8.254
    }

}

END

保存退出

启动服务:systemctl restart keepalived


Web1 192.168.8.7的配置

1.pm安装nginx

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

umount /dev/cdrom

mount /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   nginx

scp -rp /wordpress [email protected]:/

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

 scp -rp /wordpress/* [email protected]:/data

8.查看并挂载

mount   |   grep   data

showmount-e 192.168.8.11

mount -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/cdrom

mount /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 [email protected]:/

scp -rp /etc/nginx/* [email protected]:/etc/nginx

客户端进行访问


本文转载自: https://blog.csdn.net/xyyy060908/article/details/141183325
版权归原作者 团儿. 所有, 如有侵权,请联系我们删除。

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

还没有评论