配置集群
高可用集群
为什么需要配置Nginx集群:
在实际开发过程中Nginx也有可能宕机,如果我们能够将Nginx配置成高可用,当Nginx宕机之后,在集群中我们可以将请求转发到从Nginx服务器当中,由该从服务器完成任务
那我们怎么实现主从之间的切换,要想到两台Nginx服务器的地址也是不同的
这时我们可以使用虚拟ip来完成,我们对外界提供虚拟ip,绑定集群中的Nginx地址,这时通过keeplived(相当于一种路由,检测主从服务器的工作状态),来完成主从服务器之间的切换
配置高可用集群
条件:
- 需要多台服务器安装Nginx
安装Nginx步骤请参考博主的Nginx开发第一篇
- 需要keepalived,并在配置文件中给出虚拟ip
yum -y install keepalived
:执行命令安装(在/usr目录中安装)
安装之后,在etc目录中生成目录keepalived,其中存在文件keepalived.conf
在keepalived.conf
文件中配置Nginx服务器的主从
txt
#全局的配置
global_defs {
notification_email{
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notifcation_email_from Alexandre.Cassen@firewall.1oc
smtp_server 192.168.75.129
smtp_connect_timeout 30
# Linux主机的名字,也是通过hosts文件配置映射而来
router_id LVS_DEVEL
}
#脚本的一些相关配置
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
# 当脚本中返回正确执行下边操作
interval 2 #(检测脚本执行的间隔)
weight 2 #改变当前服务器的权重
}
# 虚拟ip的相关配置
vrrp_instance VI_1{
state BACKUP #备份服务器上将MASTER改为BACKUP
interface ens33 #网卡
virtual_router_id 51 #主,备机的virtual_router_id必须相同
priority 100 #主备机取不同的优先级,主机值较大,一般主机100,备用90
advert_int 1 #心跳检测,每隔1秒检查当前服务器存活状态
# 校验方式
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟IP的地址
virtual_ipaddress{
192.168.75.10 # VRRP H虚拟地址
}
}
检测的脚本
txt
#!/bin/bash
A='ps -C nginx -no-header |wc -1'
if [$A -eq 0];then
/usr/local/nginx/sbin/nginx
sleep 2
if ['ps -C nginx --no-header |wc -1' -eq 0];then
killall keepalived
fi
fi
- 启动多台服务器的Nginx以及keepalived
systemctl start keepalived.server