首页 > 系统相关 >深度优化Nginx负载均衡策略,携手Keepalived打造高可用服务架构新纪元

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

时间:2024-08-17 09:53:08浏览次数:11  
标签:配置文件 nginx Keepalived etc keepalived 192.168 Nginx 新纪元 mnt

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

客户端进行访问

标签:配置文件,nginx,Keepalived,etc,keepalived,192.168,Nginx,新纪元,mnt
From: https://blog.csdn.net/xyyy060908/article/details/141183325

相关文章

  • Nginx项目部署
    Nginx部署Django项目(基于centos7)一、安装Python(源码编译安装)下载PythonPython下载网址将Python源代码上传到服务器#scp文件服务器用户名@服务器IP:拷贝的文件存放路径scpD:\下载\Python-3.8.19.tgzremote-centos:/opt安装Python#安装Python依......
  • Linux安装Nginx详细教程
    1.安装nginx依赖yum-yinstallgccgcc-c++pcrepcre-develzlibzlib-developensslopenssl-devel2.安装wgetyum-yinstallwget我这里是已经安装好的,运行代码会是下面的结果,不确定自己有没有安装,可以执行试下 3.创建nginx安装目录    /usr/local/目录下......
  • 打包nginx镜像,添加flv_live模块
    因为工作需要而打包一个包含nginx_http_flv_live模块,记录下编译中遇到的问题,和解决方式编译nginx的最大的一个坑就是基础镜像使用的debian:latest,导致各种编译后能通过rtmp推流但是无法通过http拉取http-flv视频流版本alpine==3.8.5nginx==1.25.5https://nginx.org/down......
  • Nginx部署时反向代理双斜杠问题
    我的Django+Vue前后端分离的项目,当我打包上服务后发现我的接口出现了双斜杠,Django无法识别比如这:种http://host//file_list,双斜杠出现在了中间本带开发环境和服务器的区别是服务器多了一层nginx代理,罪魁祸首应该发生在Nginx上;然后去网上查了一些方法,都不管用,最后还是ChatGP......
  • Delphi开发新纪元:探索持续集成与持续部署的自动化之路
    标题:“Delphi开发新纪元:探索持续集成与持续部署的自动化之路”引言在软件工程领域,持续集成(CI)和持续部署(CD)是敏捷开发的关键实践,它们确保了代码的高质量和快速迭代。对于Delphi开发者而言,选择合适的CI/CD工具对于提高开发效率和软件质量至关重要。一、DelphiCI/CD工具概......
  • 在nginx的访问日志中输出响应时间(json格式)
    log_formatjsonescape=json'{''"time":"$time_iso8601",''"host":"$remote_addr",''"method......
  • Nginx SSL证书部署
    简介本文介绍在Nginx服务器配置SSL证书,配置成功后即可通过HTTPS加密通道安全访问Nginx服务器环境Nginx+阿里云SSL证书下载证书此处以阿里云证书为例登录控制台->数字证书管理服务选择SSL证书在列表中找到要下载的证书,操作列单机下载选择Nginx服务器类型下载解压......
  • MemFire Cloud,前端开发新纪元
    在前端开发的世界里,每年都会涌现出各种各样的新技术和工具,但真正能够改变游戏规则的却寥寥无几。而MemFireCloud,就是这样一款能够引领前端开发新纪元的工具。一站式开发神器,懒人的福音对于开发者来说,最烦人的事情莫过于不断地搭建服务、配置环境和开发接口API。这些繁琐......
  • 全网最详细且最容易理解的高可用集群KEEPALIVED
    一:高可用集群1.1集群类型LB:LoadBalance负载均衡LVS/HAProxy/nginx(http/upstream,stream/upstream)HA:HighAvailability高可用集群数据库、RedisSPoF:SinglePointofFailure,解决单点故障HPC:HighPerformanceComputing高性能集群1.2系统可用性SLA:Servic......
  • nginx的功能?部署前端代码的步骤?负载均衡的功能,说一下。
    nginx的功能?部署前端代码的步骤?负载均衡的功能,说一下。使用Nginx部署前端项目的详细步骤作者:rousong2024.01.2920:50浏览量:423使用Nginx部署前端项目的详细步骤(baidu.com)简介:本文将介绍使用Nginx部署前端项目的详细步骤,包括下载和安装Nginx、配置Nginx、部署前端项目等。......