1、概述
1.1、存在的问题
如果 nginx 宕机了,则请求将实现不了效果
![](http://upload-images.jianshu.io/upload_images/18701838-4588697762d93e09.png?imageMogr2/auto-orient/strip|imageView2/2/w/720/format/webp)
1.2、解决方案:高可用
通过使用 主-从(备) nginx,当主nginx 出现宕机,自动切换到从(备) nginx 可用使用,保证请求可以成功。
![](http://upload-images.jianshu.io/upload_images/18701838-e40e3b2d3b0e415b.png?imageMogr2/auto-orient/strip|imageView2/2/w/720/format/webp)
条件:
(1)需要至少两台 nginx 服务器
(2)需要 keepalive
(3)需要虚拟 ip
2、高可用使用
2.1、准备工作
(1)准备两台服务器 192.169.92.128 和 192.168.92.129;
(2)两台服务器中都安装 nginx
(3)两台服务器中都安装 keepalive
安装:keepalive
yum install keepalived -y
安装完毕后,查看是否安装成功:
rpm -q -a keepalived
安装完毕后再 /etc/ 文件下会生成个 keepalived 文件夹 里面会有一个 keepalived.conf 配置文件;
2.2、完成高可用配置(主从配置)
(1)修改 /etc/keepalived/keepalived.cong 配置文件
global_defs {
notification_email {
acassen
(2)在 /usr/local/src/ 下添加检测脚本
#!/bin/bash
A=`ps -C nginx -no-header |wc -1`
if [ $A -eq 0 ];then
/server/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -1` -eq 0 ];then
killall keepalived
fi
fi
2.3、启动两台服务器的 nginx 和 keepalived 测试
其中启动 keepalived 命令如下:
systemctl start keepalived.service
(1)在地址栏输入虚拟IP:192.168.92.150
![](http://upload-images.jianshu.io/upload_images/18701838-9ca1a658cea0b149.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/700/format/webp)
其中在主服务器中输入 ip address 可查看如下:
![](http://upload-images.jianshu.io/upload_images/18701838-21bdace6de4b1728.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/700/format/webp)
其中在从(副)服务器中输入 ip address 可查看如下:
(2)关闭主服务器的 nginx 和 keepalived 后再此刷新访问页面
此时访问的是从(副)服务器