Nginx+keepalived高可用配置实战_nginx keepalive配置最佳实践,2024年最新成功入职百度月薪35K

21 阅读2分钟

Compiler : gcc Compiler : -g -O2 Extra Lib : -lpopt -lssl -lcrypto Use IPVS Framework : Yes IPVS sync daemon support : Yes Use VRRP Framework : Yes Use LinkWatch : No Use Debug flags : No


注意./configure之后的结果,没有错误就可以了



make && make install


之后规范配置、启动文件路径



/bin/cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/ /bin/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived -p /bin/cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ /bin/cp /usr/local/sbin/keepalived /usr/sbin/ /etc/init.d/keepalived start


注:nginx负载均衡相关配置请参考前面的文章  
 LNMP架构应用实战—Nginx反向代理负载均衡配置



## 3、实战配置keepalived



[root@LB01 keepalived]# vi keepalived.conf ! Configuration File for keepalived global_defs { notification_email { abc@qq.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 1.1.1.1 smtp_connect_timeout 30 router_id LVS_3 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 19 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.254/24 } } [root@LB02 keepalived]# vi keepalived.conf ! Configuration File for keepalived global_defs { notification_email { abc@qq.com } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 1.1.1.1 smtp_connect_timeout 30 router_id LVS_6 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 19 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.254/24 } } [root@LB01 keepalived]# /etc/init.d/keepalived start Starting keepalived: [ OK ] [root@LB02 keepalived]# /etc/init.d/keepalived start Starting keepalived [ OK ] [root@LB01 keepalived]# ip add|grep 192.168.1.254 inet 192.168.1.254/24 scope global secondary eth0 [root@LB02 keepalived]# ip add|grep 192.168.1.254


**测试访问**  
 ![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/5e66e7b0ab16491e8dab363b164eb5e7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771139405&x-signature=v0vPmXkDMTKLChXoY4GIlXCtVvo%3D)  
 表明可以正常切换


现在我们模拟keepalived主宕机,再测试



[root@LB01 conf]# /etc/init.d/keepalived stop Stopping keepalived: [ OK ] [root@LB02 ~]# ip add|grep 254 inet 192.168.1.254/24 scope global secondary eth0


![在这里插入图片描述](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/824e5376c82a4b80bdc27635f028851c~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771139405&x-signature=8NxqmKEy2LdaqfjYQsnqXv9RkIM%3D)


## 4、反向代理服务故障自动切换


如果实际生产环境中当keeplived主的服务器nginx服务宕机,但是主又有VIP,这时就出现无法访问的现象,因此可以做如下的配置,使得这种情况可自已切换



vi check_nginx.sh #!/bin/sh white true do PNUM=ps -ef|grep nginx|wc -l


#这里也可使用nmap 192.168.1.3 -p 80|grep open|wc -l来判断个数



if [ $PNUM -lt 3 ];then /etc/init.d/keepalived stop >/dec/null 2>&1 kill -9 keealived >/dec/null 2>&1 kill -9 keealived >/dec/null 2>&1 fi sleep 5 done sh check_nginx.sh &




![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/49568c20f0da454782890d06a1d758d7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771139405&x-signature=XdNxQZ836EqgXyapqSLhG2jpcSg%3D)
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/4c1660c272fb43a48324aa715303d386~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzIxMjA3NDIwNDUy:q75.awebp?rk3s=f64ab15b&x-expires=1771139405&x-signature=N4lAzNRmgSV7%2FugvVZs0bx2R4Cc%3D)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**了解详情》docs.qq.com/doc/DSlVlZExWQ0FRSE9H**