nginx目前是我最常用的反向代理服务,线上环境为了能更好的应对突发情况,一般会使用keepalived双机热备nginx或者使用docker跑nginx集群,keepalived是比较传统的方式,虽然用docker跑nginx集群更方便,但传统的方式总是有他的可取之处,并且多学一些东西也很好。以后也会写如何使用docker跑nginx集群。
环境准备:
2台centos: 192.168.0.105 和192.168.0.118, 虚拟IP(VIP)为192.168.0.119
配置keepavlived
分别在105和118上安装keepalived
?准备心跳角本
keepalived的配置相当灵活,可以定时执行角本命令,用于心跳检查,比如,我们访问nginx发现nginx不可访问时,就关闭keepalived,从而切换到从nginx来实现不间断的服务支持。
vi /etc/keepalived/keepalived.conf
?这段角本的意思就是说每次的心跳检查会执行一个for循环,访问http://localhost:81,在for的2次循环中如果返回的状态都不是200就会关闭keepalived。这个角本在105和118两台机器上都要准备好。
设置118机器上的keepalived为主节点,105机器上的keepalived为从节点,它们两个的配置文件差不太多
?118机器keepalived的配置文件
?115机器上的角本对上面的角本稍做变动即可
改变 state MASTER -> state BACKUP,priority 100 -> priority 90,mcast_src_ip 192.168.0.118 -> mcast_src_ip 192.168.0.105。其他的地方保持不变,是不是很简单。
?到这里keepalived的简单配置就完成了下面就启动keepalived
?安装Nginx
查看nginx的依赖库是否完整
?
如果没有就安装
?下载并解压nginx
?
安装在/usr/local/nginx/sbin/nginx 目录下
?
执行成功后会显示leaving directory
启动
?
检查
?
开机启动
?添加一行
?
因为我的机器上80端口被别的应用占用了,所以就修改105和118的 nginx.conf 把端口80 修改为81
?
分别个性105 和119上的index.html 加上一个ip以便们们识别打开的是哪个ip上的index.html
?
nginx重新加载配置
?好了,我们访问一下
?返回的html是 118机器上的index.html
现在我们把118的nginx停止
?这时118上的keepalived的心跳检查角本发现nginx无法访问会把keepalived关闭,然后转向从节点
我们再访问一下119
?
在118上重新启动nginx和keepalived
再访问119 返回的网址是118上的index.html
总结
以上所述是小编给大家介绍的keepalived双机热备nginx的配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/li-peng/p/8490928.html