集群
高可用集群
什么是高可用
就是nginx宕机以后,请求服务仍能使用。
使用主从的方式,建立两台nginx服务器。主服务器宕机后,使用备份服务器。使用keepalived来判断是否宕机。对外显示的是虚拟ip。
准备工作
1.需要准备两台服务器。
2.在两台服务器中按照nginx和keepalived
3.keepalived可以直接apt安装。
yum install keepalived -y
rpm -q -a keepalived # 查看是否安装完成
安装之后在etc里面的keepalived目录下的keepalived.conf文件即为配置文件。
具体配置(主从配置)
修改配置文件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
# 通过这个名字可以访问到主机,需要在/etc/hosts文件中添加LVS_DEVEL这个名字
router_id LVS_DEVEL
}
# 检测脚本和权重参数
vrrp_script chk_http_port{
script "/usr/local/src/nginx_check.sh" # check 脚本
interval 2 # 检测脚本执行的间隔,每隔2s执行一次
weight 2 # 权重 如果宕机 权重也会变。
}
# 虚拟ip配置
vrrp_instance VI_1{
state MASTER # 表示是主还是备份服务器 备份服务器上将MASTER改为BACKUP
interface ens33 # 网卡 ifconfig查看网卡
virtual_router_id 51 # 唯一标识 主、备机的virtual_router_id必须相同
priority 100 # 优先级,主机值大,备用机值小。主备优先级不同
advert_int 1 # 每隔1s查看服务器是否还活着
# 权限校验方式
authentication{
auth_type PASS # 使用密码校验
auth_pass 1111 # 密码是1111
}
# 虚拟地址 可以绑定多个
virtual_ipaddress{
192.168.17.50 # VRRP 虚拟地址
}
}
在/etc/hosts文件中添加LVS_DEVEL这个名字
访问/etc/hosts文件
添加
127.0.0.1 LVS_DEVEL
脚本文件nginx_check.sh放到这个路径/usr/local/src/
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [$A -eq 0];then
/usr/local/nginx/sbin/nginx
sleep 2
if [`ps -C nginx --no-header | wc -l` -eq 0];then
killall keepalived
fi
fi
启动nginx和keepalived
systemctl start keepalived.service # 启动
ps -ef |grep keepalived # 查看是否启动成功
测试
自行测试,访问虚拟ip。如果虚拟ip可以访问,停掉主服务器再访问。