Nginx高可用集群搭建

young 516 2021-10-18

在多个linux服务器上安装nginx

安装keepalived服务

yum install -y keepalived

安装之后,在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
	}
	
	vrrp_script chk_http_port {
		# 检查nginx脚本,检查nginx是否存活
		script "/usr/local/src/nginx_check.sh"
		interval 2 #(检测脚本执行的间隔 单位秒)
		weight 2 # 权重
	}
	vrrp_instance VI_1 {
		state MASTER
		# 备份服务器上将 MASTER 改为 BACKUP
		interface ens33 //网卡名称
		virtual_router_id 51 #虚拟路由ID
		# 主、备机的 virtual_router_id 必须相同
		priority 100
		# 主、备机取不同的优先级,主机值较大,备份机值较小
		advert_int 1
		# 校验
		authentication {
			auth_type PASS
			auth_pass 1111
		}
		# 将 track_script 块加入 instance 配置块
    	track_script {
       		chk_http_port #执行 Nginx 监控的服务
    	}
	virtual_ipaddress {
		10.20.150.211 // VRRP H 虚拟地址
	}
}

启动keepalived

systemctl start keepalived.service

可以通过ip addr查看是否有子IP

check脚本

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
	/app/tools/nginx/sbin/nginx
	sleep 2
	if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
		killall keepalived
	fi
fi