1.安装依赖包(主从服务器一致)
sudo apt-get install libssl-dev
sudo apt-get install openssl
sudo apt-get install libpopt-dev
2.安装keepalived(主从服务器一致)
sudo apt-get install keepalived
3.配置keepalived.conf(apt安装完后,程序创建了/etc/keepalived目录,但是没有生成keepalived.conf,自己手动写了一个)
a) 主服务器配置
sudo vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.17.129
smtp_connect_timeout 30
router_id LVS_DEVEL # LVS_DEVEL这字段在/etc/hosts文件中看;通过它访问到主机
}
vrrp_script chk_http_ port {
script "/usr/local/src/nginx_check.sh"
interval 2 # (检测脚本执行的间隔)2s
weight 2 #权重,如果这个脚本检测为真,服务器权重+2
}
vrrp_instance VI_1 {
state MASTER # 备份服务器上将MASTER 改为BACKUP
interface ens33 //网卡名称
virtual_router_id 51 # 主、备机的virtual_router_id必须相同
priority 100 #主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 #每隔1s发送一次心跳
authentication { # 校验方式, 类型是密码,密码1111
auth type PASS
auth pass 1111
}
virtual_ipaddress { # 虛拟ip
192.168.100.100 // VRRP H虛拟ip地址
}
}
b) 从服务器配置
sudo vim /etc/keepalived/keepalived.conf
跟主服务器只有vrrp_instance VI_1的state和priority需要修改
c) 创建Nginx服务监控脚本/usr/local/nginx/check_nginx.sh(主从服务器上一致)
sudo vim /usr/local/src/check_nginx_pid.sh
4.启动Nginx和Keepalived
a) 启动主服务
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
sudo service keepalived start
b) 启动从服务
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
sudo service keepalived start
5.测试
a) 修改主从服务器上Nginx的index.html
sudo vim /usr/local/nginx/html/index.html
b) 通过虚拟IP访问Nginx服务
c) 关闭掉主服务器上Nginx和Keepavlived
sudo killall keepalived
sudo killall nginx
d) 再次通过虚拟IP访问Nginx服务