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

在两台服务器上的步骤:

  1. 安装必要软件 :在两台服务器上,安装必要的软件,包括ipvsadmkeepalived。使用以下命令安装软件:
复制代码
 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
   }
 }

在上述示例配置文件中,stateMASTER表示当前服务器为主节点,stateBACKUP则表示备节点。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_SERVERSECONDARY_SERVERVIRTUAL_IP 的值替换为正确的IP地址。

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

复制代码
 bash lvs_dr_setup.sh

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

相关推荐
IP管家1 小时前
企业级IP代理解决方案:负载均衡与API接口集成实践
服务器·网络·数据库·网络协议·tcp/ip·容器·负载均衡
SHUIPING_YANG1 小时前
Nginx 返回 504 状态码表示 网关超时(Gateway Timeout)原因排查
运维·nginx·gateway
〆、风神4 小时前
面试真题 - 高并发场景下Nginx如何优化
java·nginx·面试
noravinsc14 小时前
国产化中间件 替换 nginx
运维·nginx·中间件
ZHOU_WUYI16 小时前
使用 Docker 部署 React + Nginx 应用教程
nginx·react.js·docker
九章云极AladdinEdu18 小时前
GPU与NPU异构计算任务划分算法研究:基于强化学习的Transformer负载均衡实践
java·开发语言·人工智能·深度学习·测试工具·负载均衡·transformer
佩奇的技术笔记18 小时前
Java学习手册:客户端负载均衡
java·负载均衡
梦在深巷、1 天前
nginx配置之负载均衡
运维·nginx·负载均衡
iRayCheung1 天前
Kind方式部署k8s单节点集群并创建nginx服务对外访问
nginx·kubernetes·kind
影龙帝皖2 天前
Linux服务之lvs+keepalived nginx+keepalived负载均衡实例解析
linux·nginx·lvs