基于CentOS7.5构建LVS-DR 群集,并启用Nginx负载均衡,一键完成。

在两台服务器上的步骤:

  1. 安装必要软件 :在两台服务器上,安装必要的软件,包括ipvsadm和keepalived。使用以下命令安装软件:
复制代码
 sudo yum install ipvsadm keepalived -y
  1. 禁用防火墙或配置规则:禁用防火墙或根据实际需要配置允许LVS流量通过的防火墙规则。

  2. 编辑/etc/sysctl.conf文件 :打开/etc/sysctl.conf文件并取消以下行的注释,使其生效:

复制代码
 net.ipv4.ip_forward = 1
 net.ipv4.ip_nonlocal_bind = 1
 net.ipv4.conf.all.arp_ignore = 1
 net.ipv4.conf.all.arp_announce = 2

保存文件后执行以下命令使其生效:

复制代码
 sudo sysctl -p
  1. 编辑/etc/keepalived/keepalived.conf文件 :在两台服务器上,编辑/etc/keepalived/keepalived.conf文件,配置Keepalived的主备模式和虚拟IP。以下是一个示例配置文件:
复制代码
 global_defs {
   router_id LVS_DEMO
 }
 ​
 vrrp_script check_nginx {
   script "killall -0 nginx"
   interval 2
   weight -30
 }
 ​
 vrrp_instance VI_1 {
   state MASTER
   interface eth0
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
     auth_type PASS
     auth_pass 1111
   }
   virtual_ipaddress {
     192.168.0.100
   }
   track_script {
     check_nginx
   }
 }

在上述示例配置文件中,state为MASTER表示当前服务器为主节点,state为BACKUP则表示备节点。interface需要根据实际网络接口名称进行配置。

  1. 启动和启用Keepalived服务:在两台服务器上,启动和启用Keepalived服务。使用以下命令分别在两台服务器上执行:
复制代码
 sudo systemctl start keepalived
 sudo systemctl enable keepalived

仅在主节点上的步骤:

  1. 安装和配置Nginx:在主节点服务器上,安装和配置Nginx作为负载均衡器。使用以下命令安装Nginx:
复制代码
 sudo yum install nginx -y

然后,配置Nginx的负载均衡器。打开/etc/nginx/nginx.conf文件,按照以下示例配置添加一个HTTP部分:

复制代码
 http {
   upstream backend {
     server 192.168.0.101:80;
     server 192.168.0.102:80;
   }
 ​
   server {
     listen 80;
     location / {
       proxy_pass http://backend;
     }
   }
 }

以上示例配置假设服务器1的IP地址为192.168.0.101,服务器2的IP地址为192.168.0.102。根据实际情况调整配置。

  1. 启动和启用Nginx服务:在主节点服务器上,启动和启用Nginx服务。使用以下命令执行:
复制代码
 sudo systemctl start nginx
 sudo systemctl enable nginx

现在,您已经成功地在CentOS 7.5上构建了一个LVS-DR负载均衡集群,并使用Nginx作为负载均衡器。通过访问虚拟IP地址192.168.0.100,您应该能够通过负载均衡器访问到后端服务器。

请注意,上述步骤中的IP地址和配置仅供参考。您需要根据您的实际网络设置和需求进行适当的调整。

一键完成

下面是一个Shell脚本,可以自动化执行上述步骤来构建LVS-DR负载均衡集群并配置Nginx。

复制代码
 #!/bin/bash
 ​
 PRIMARY_SERVER="192.168.0.101"
 SECONDARY_SERVER="192.168.0.102"
 VIRTUAL_IP="192.168.0.100"
 ​
 # 安装必要软件
 sudo yum install ipvsadm keepalived nginx -y
 ​
 # 禁用防火墙或配置规则
 sudo systemctl stop firewalld
 sudo systemctl disable firewalld
 ​
 # 编辑 /etc/sysctl.conf 文件
 sudo sed -i '/net.ipv4.ip_forward/s/#//g' /etc/sysctl.conf
 sudo sed -i '/net.ipv4.ip_nonlocal_bind/s/#//g' /etc/sysctl.conf
 sudo sed -i '/net.ipv4.conf.all.arp_ignore/s/#//g' /etc/sysctl.conf
 sudo sed -i '/net.ipv4.conf.all.arp_announce/s/#//g' /etc/sysctl.conf
 sudo sysctl -p
 ​
 # 配置 keepalived
 sudo cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.backup
 sudo cat <<EOF | sudo tee /etc/keepalived/keepalived.conf
 global_defs {
   router_id LVS_DEMO
 }
 ​
 vrrp_script check_nginx {
   script "killall -0 nginx"
   interval 2
   weight -30
 }
 ​
 vrrp_instance VI_1 {
   state MASTER
   interface eth0
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
     auth_type PASS
     auth_pass 1111
   }
   virtual_ipaddress {
     $VIRTUAL_IP
   }
   track_script {
     check_nginx
   }
 }
 EOF
 ​
 # 启动和启用 keepalived 服务
 sudo systemctl start keepalived
 sudo systemctl enable keepalived
 ​
 # 配置 Nginx
 sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
 sudo cat <<EOF | sudo tee /etc/nginx/nginx.conf
 http {
   upstream backend {
     server $PRIMARY_SERVER:80;
     server $SECONDARY_SERVER:80;
   }
 ​
   server {
     listen 80;
     location / {
       proxy_pass http://backend;
     }
   }
 }
 EOF
 ​
 # 启动和启用 Nginx 服务
 sudo systemctl start nginx
 sudo systemctl enable nginx

请根据您的实际网络设置和需求,将变量 PRIMARY_SERVER、SECONDARY_SERVER 和 VIRTUAL_IP 的值替换为正确的IP地址。

将脚本保存为 lvs_dr_setup.sh,然后在命令行中运行以下命令来执行脚本:

复制代码
 bash lvs_dr_setup.sh

脚本将自动安装必要的软件,禁用防火墙,配置sysctl参数,设置Keepalived和Nginx的配置文件,并启动和启用相关的服务。

相关推荐
姜鱼问生11 小时前
每次开机手动检查 6 样东西?我写了个 2 秒自检脚本
运维·网络·nginx·docker·容器
我不会起名字32221 小时前
负载均衡选错:轮询在长连接下的偏斜问题
微服务·负载均衡·grpc·长连接
xixingzhe21 天前
Nginx 看懂请求耗时瓶颈
服务器·前端·nginx
北风toto2 天前
Windows 下用 OpenSSL 生成 SSL 密钥并配置 Nginx 教程
windows·nginx·ssl
。2 天前
【无标题】
linux·服务器·负载均衡·lvs
卜锦元2 天前
Docker Compose 部署 Nginx 1.30.6 完整指南
nginx·docker·容器
小小龙学IT2 天前
Nginx 开源 Web 服务器与反向代理深度解
前端·nginx·开源
果霸大叔2 天前
AI网关第8篇:AI 代理与负载均衡--多模型实例如何调度?
人工智能·算法·自然语言处理·负载均衡·ai-native
Coisinier3 天前
docker命令管理镜像及容器
linux·运维·nginx·docker·容器·操作系统
2301_32241428043 天前
基于web的校园失物招领管理系统59695-计算机毕设 原创(免费领源码+部署教程+开发环境)
mysql·nginx·php·apache·thinkphp·phpstudy·wampserver