重庆企业网站,常州网站设计,做动画合成的视频网站,自己怎么在电脑上做网站通过Nginx负载均衡和Keepalived可以实现业务的高可用#xff0c;以下是详细的实现步骤#xff1a;
环境准备
假设我们有3台服务器#xff0c;IP地址分别为#xff1a;
服务器1#xff08;Nginx Keepalived 主节点#xff09;#xff1a;192.168.1.100服务器2#x…通过Nginx负载均衡和Keepalived可以实现业务的高可用以下是详细的实现步骤
环境准备
假设我们有3台服务器IP地址分别为
服务器1Nginx Keepalived 主节点192.168.1.100服务器2Nginx Keepalived 备节点192.168.1.101后端应用服务器192.168.1.102、192.168.1.103
步骤一安装Nginx和Keepalived
在服务器1和服务器2上分别安装Nginx和Keepalived
安装Nginx
# 更新系统包列表
sudo apt update
# 安装Nginx
sudo apt install nginx -y安装Keepalived
sudo apt install keepalived -y步骤二配置Nginx负载均衡
在服务器1和服务器2上进行相同的Nginx配置。编辑Nginx的配置文件 /etc/nginx/sites-available/default
http {upstream backend {server 192.168.1.102;server 192.168.1.103;}server {listen 80;server_name _;location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
}上述配置中upstream 块定义了后端应用服务器列表server 块将所有请求代理到后端服务器。
配置完成后重启Nginx服务
sudo systemctl restart nginx步骤三配置Keepalived
主节点服务器1配置
编辑 /etc/keepalived/keepalived.conf 文件
! Configuration File for keepalivedglobal_defs {router_id LVS_DEVEL
}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.110}
}virtual_server 192.168.1.110 80 {delay_loop 6lb_algo rrlb_kind NATpersistence_timeout 50protocol TCPreal_server 192.168.1.100 80 {weight 1SSL_GET {url {path /digest ff20ad2481f8d0385d96a347da6cdb0c}url {path /mrtg/digest 9b3a0c85a8872a256d6939da88aabd8cd}connect_timeout 3retry 3delay_before_retry 3}}
}state MASTER表示该节点为主节点。interface eth0指定使用的网络接口。virtual_router_id 51虚拟路由ID主备节点需保持一致。priority 100优先级主节点优先级要高于备节点。virtual_ipaddress指定虚拟IP地址VIP。
备节点服务器2配置
编辑 /etc/keepalived/keepalived.conf 文件
! Configuration File for keepalivedglobal_defs {router_id LVS_BACKUP
}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.110}
}virtual_server 192.168.1.110 80 {delay_loop 6lb_algo rrlb_kind NATpersistence_timeout 50protocol TCPreal_server 192.168.1.101 80 {weight 1SSL_GET {url {path /digest ff20ad2481f8d0385d96a347da6cdb0c}url {path /mrtg/digest 9b3a0c85a8872a256d6939da88aabd8cd}connect_timeout 3retry 3delay_before_retry 3}}
}与主节点配置的主要区别在于 state 为 BACKUPpriority 较低。
配置完成后分别在服务器1和服务器2上启动Keepalived服务
sudo systemctl start keepalived
sudo systemctl enable keepalived步骤四验证高可用性
访问业务在客户端浏览器中输入虚拟IP地址 192.168.1.110应该可以正常访问后端应用服务。模拟主节点故障在服务器1上停止Keepalived服务
sudo systemctl stop keepalived此时虚拟IP地址会自动漂移到服务器2上再次在客户端浏览器中输入虚拟IP地址仍然可以正常访问后端应用服务。
恢复主节点在服务器1上启动Keepalived服务
sudo systemctl start keepalived由于主节点优先级较高虚拟IP地址会再次漂移回服务器1。
注意事项
确保服务器之间网络连通并且防火墙允许相关端口如80、VRRP协议的通信。可以根据实际需求调整Nginx的负载均衡算法和Keepalived的优先级等参数。