我这里用两台虚拟机配置高可用
前提是两台虚拟机上都已经安装了nginx,并且正常启动
安装nginx:Nginx安装与启动
安装keepalived
分别在两台机器上安装keepalived
输入命令:
yum install keepalived -y
查看是否安装成功,输入命令:
rpm -q -a keepalived
出现以下就代表安装keepalived成功
rpm -q -a keepalived
配置keepalived
进入/etc/keepalived目录,打开keepalived.conf文件,删掉所有内容,主节点复制以下内容
#全局配置
global_defs {
router_id lb201 #服务器域名名字,可在/etc/hosts中查看127.0.0.1映射的域名
}#脚本配置
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"#脚本路径
interval 2 #(检测脚本执行的间隔);每隔2s检查一次
weight 2 #设置服务器权重
}#虚拟ip的配置
vrrp_instance laowang {
state MASTER # Master为Master;Salve为BACKUP
interface ens33 #网卡;可以用ip addr 看网卡名
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 #每1s发送一次心跳
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.73.250 // VRRP H 虚拟ip地址,多台keepalived绑定一个ip;必须同一网段
}
}
从节点复制以下内容
#全局配置
global_defs {
router_id lb202 #服务器域名名字,可在/etc/hosts中查看127.0.0.1映射的域名
}#脚本配置
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"#脚本路径
interval 2 #(检测脚本执行的间隔);每隔2s检查一次
weight 2 #设置服务器权重
}#虚拟ip的配置
vrrp_instance laowang {
state BACKUP # Master为Master;Salve为BACKUP
interface ens33 #网卡;可以用ip addr 看网卡名
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 #每1s发送一次心跳
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.73.250 // VRRP H 虚拟ip地址,多台keepalived绑定一个ip;必须同一网段
}
}
新建一个脚本文件,文件名为nginx_check.sh,复制以下代码
#!/bin/bash
A=`ps -C nginx ĘCno-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/software/nginx/sbin/nginx #nginx的安装路径
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
然后把此文件分别放在每台虚拟机的/usr/local/src目录下,脚本文件的作用是检测nignx服务是否正常运行。
完成两台nginx高可用配置。