准备两台VM。
192.168.199.128
192.168.199.132
分别在两台VM上安装nginx
1. nginx安装
1. 下载
https://www.openssl.org/source/
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre
http://nginx.org/en/download.html
2. 依次减压
2.1. 安装openssl
进入解压根目录
./config && make && make install
2.2 pcre安装
进入解压根目录
./configure && make && make install
2.3 zlib安装
进入解压根目录
./configure && make && make install
2.4 nginx安装
2.4.1 编译
./configure --prefix=/home/softinstall/nginxinstall --with-openssl=/home/softinstall/nginx/openssl-1.1.1b --with-pcre=/home/softinstall/nginx/pcre-8.43 --with-zlib=/home/softinstall/nginx/zlib-1.2.11 --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
2.4.2 安装
make && make install
./configure --prefix=/usr/local --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --http-client-body-temp-path=/usr/local/var/tmp/nginx/client --http-proxy-temp-path=/usr/local/var/tmp/nginx/proxy --http-fastcgi-temp-path=/usr/local/var/tmp/nginx/fcgi --http-scgi-temp-path=/usr/local/var/tmp/nginx/scgi --http-uwsgi-temp-path=/usr/local/var/tmp/nginx/uwsgi --with-http_geoip_module --with-http_stub_status_module
2.keepalived安装
在
192.168.199.128
192.168.199.132
这两台VM上安装keepalived
yum install -y keepalived
安装成功后
在/etc/keepalived/目录有keepalived.conf文件。分别修改该配置为
! Configuration File for keepalived
global_defs {
router_id master-128
}
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 80
priority 100
mcast_src_ip 192.168.199.128
advert_int 1
authentication {
auth_type PASS
auth_pass 9999
}
# 将 track_script 块加入 instance 配置块 #执行 Nginx 监控的服务
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.199.200
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 81
priority 100
mcast_src_ip 192.168.199.132
advert_int 1
authentication {
auth_type PASS
auth_pass 9999
}
# 将 track_script 块加入 instance 配置块 #执行 Nginx 监控的服务
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.199.201
}
}
====================================================
! Configuration File for keepalived
global_defs {
router_id master-132
}
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 80
priority 100
mcast_src_ip 192.168.199.128
advert_int 1
authentication {
auth_type PASS
auth_pass 9999
}
# 将 track_script 块加入 instance 配置块 #执行 Nginx 监控的服务
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.199.200
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 81
priority 100
mcast_src_ip 192.168.199.132
advert_int 1
authentication {
auth_type PASS
auth_pass 9999
}
# 将 track_script 块加入 instance 配置块 #执行 Nginx 监控的服务
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.199.201
}
}
======================================
然后在/etc/keepalived/下添加以下脚本,脚本名称为check_nginx.sh。(注意自己安装的nginx路径)
#!/bin/bash
A=`ps -C nginx --no-heading|wc -l`
if [ $A -eq 0 ];then
echo "`date "+%Y-%m-%d--%H:%M:%S"` nginx stop" >> /var/log/check_ng.log
/home/softinstall/nginxinstall/sbin/nginx
sleep 2
if [ `ps -C nginx --no-heading|wc -l` -eq 0 ];then
echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
killall keepalived
fi
fi
===================================
然后启动nginx与keepalived
/home/softinstall/nginxinstall/sbin/nginx
//开机启动
systemctl enable keepalived.service
//启动keepalived
systemctl start keepalived.service
//停止,根据需要操作
systemctl stop keepalived.service
==================================
验证: http://192.168.199.200 或者http://192.168.199.201
1)查看master上keepalive及ip
ps -ef|grep keepalive
ip addr
2)keepalived高可用测试
#关闭node1上的keepalived
systemctl stop keepalived.service
#查看node1上的keepalived和ip
ps -ef|grep keepalived
ip addr
#查看node2上的keepalived和ip
ps -ef|grep keepalived
ip addr