Winter Liu nginx+keepalived实现nginx高可用集群
Nginx安装-yum
配置Yum源
rpm -qa | grep nginx 查看是否安装过
yum clean all 清除缓存目录下的软件包及旧的信息
yum erase nginx 卸载旧版
yum list 显示所有已经安装和可以安装的程序包
yum search nginx 列出与nginx相关的包 官方教程
[root@nginx-k1 ~]# yum install yum-utils -y
[root@nginx-k1 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@nginx-k1 ~]# yum install nginx -y
[root@nginx-k1 ~]# nginx -V 查看详细安装信息
[root@nginx-k1 ~]# nginx -v 单独查看版本信息
nginx version: nginx/1.26.1
[root@nginx-k1 ~]# systemctl start nginx
[root@nginx-k1 ~]# systemctl enable nginx
实验环境准备
192.168.40.204 nginx-k1 master
192.168.40.132 nginx-k2 backup
192.168.40.245 vip
[root@nginx-k1 ~]# vim /usr/share/nginx/html/index.html 修改页面内容好区分
[root@nginx-k2 ~]# vim /usr/share/nginx/html/index.html
[root@nginx-k1 ~]# yum install -y keepalived master节点安装keepalived
[root@nginx-k2 ~]# yum install -y keepalived backup节点安装keepalived
主从配置
cd /etc/keepalived
true > keepalived.conf 清空原配置文件
vim keepalived.conf
#MASTER节点
! Configuration File for keepalived
############################ 全局配置 #############################
global_defs {
# 定义管理员邮件地址,表示keepalived在发生诸如切换操作时需要发送email通知,以及email发送给哪些邮件地址,可以有多个,每行一个
notification_email {
#设置报警邮件地址,可以设置多个,每行一个。 需开启本机的sendmail服务
563172659@qq.com
}
#keepalived在发生诸如切换操作时需要发送email通知地址,表示发送通知的邮件源地址是谁
notification_email_from 563172659@qq.com
#指定发送email的smtp服务器
smtp_server 127.0.0.1
#设置连接smtp server的超时时间
smtp_connect_timeout 30
#运行keepalived的机器的一个标识,通常可设为hostname。故障发生时,发邮件时显示在邮件主题中的信息。
router_id nginx-k1
}
############################ VRRPD配置 #############################
# 定义chk_nginx脚本,脚本执行间隔10秒,权重-10,检测nginx服务是否在运行。有很多方式,比如进程,用脚本检测等等
vrrp_script chk_nginx {
#这里通过脚本监测
script "/data/chk_nginx.sh"
#脚本执行间隔,每2s检测一次
interval 2
#脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5
weight -10
#检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)
fall 2
#检测1次成功就算成功。但不修改优先级
rise 1
}
#定义vrrp实例,VI_1 为虚拟路由的标示符,自己定义