背景
相信大部分同学在生成环境部署服务的时候,都用了nginx做代理,如果1台nginx挂了怎么办?应该给nginx也做一个高可用方案,做一个主备。
线上服务不能停机的高可用架构,最简单的方案就是keepalived+nginx.
环境
2 台nginx 下面两个服务,配置一样, 说明:backup参数指定等第一个服务器失效后才使用第二个服务器。
放码过来
1 一行命令 安装keepalived,2个nginx所在的服务器都要安装
yum install keepalived
2 启动服务。
3 修改配置文件:
/etc/keepalived/keepalived.conf, 区别在于master 配置和backup 配置。
在Web服务器上,将vrrp_instance的状态设置为“MASTER”以启用主服务器。如果状态设置为BACKUP,则配置为备用服务器。
4 重启nginx 和 keepalvied 服务:
sudo service nginx restart
sudo service keepalived restart
测试高可用性
现在,可以在Web浏览器中输入高可用地址: http://192.168.56.50/
不断刷新此URL浏览器,并且在两个Web服务器上停止Nginx服务,确保只有一条Web服务器处于活动状态并且Keepalived可以轻松地切换到备用服务器。
最后
虚拟机IP一定是内网IP可以和nginx通信。有同学可能会想到,如果虚拟ip的主机挂了改怎办?更进一步的方案可以采用dns轮训实现多个虚拟ip切换。