准备集群
- nginx01服务器 192.168.50.104
- nginx02服务器 192.168.50.105
- keepalived+nginx四层代理 192.168.50.102
- keepalived+nginx四川代理 192.168.50.103
一、安装nginx
#四台服务器全部安装nginx rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum -y install nginx
二、安装keepalived
# 192.168.50.102 192.168.50.103 安装keepalived服务 yum -y install keepalived #修改主机192.168.50.102的keepalived配置文件 yum方式安装的会生产配置文件在/etc/keepalived下 vim keepalived.conf keepalived.conf: #检测脚本 vrrp_script chk_http_port { script "/etc/keepalived/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动 interval 1 #(检测脚本执行的间隔,单位是秒) weight 1 #权重 } #vrrp 实例定义部分 vrrp_instance VI_1 { state MASTER # 指定keepalived的角色,MASTER为主,BACKUP为备 interface ens33 # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡 virtual_router_id 51 # 虚拟路由编号,主从要一直 priority 100 # 优先级,数值越大,获取处理请求的优先级越高 advert_int 1 # 检查间隔,默认为1s(vrrp组播周期秒数) #授权访问 authentication { auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信 auth_pass 1111 } track_script { chk_http_port #(调用检测脚本) } virtual_ipaddress { 192.168.50.200 # 定义虚拟ip(VIP) } } scp keepalived.conf 192.168.50.103:`pwd` #复制配置文件到103主机 修改state状态和priority优先级
三、准备脚本文件
## 192.168.50.102 192.168.50.103 vim /etc/keepalived/check_nginx.sh #!/bin/bash if ! killall -0 nginx &> /dev/null; then systemctl stop keepalived fi ----------------------------------------------------------------------------------------------------- killall -0 nginx: 这个命令尝试发送信号0给名为 "nginx" 的进程。由于信号0不会对进程产生影响,它仅用于检查进程是否存在。如果进程存在,则命令的退出状态为0;如果进程不存在,则退出状态为非0。 ! 符号用于对命令的退出状态进行逻辑非操作。如果 killall -0 nginx 命令返回非0,则条件成立。 systemctl stop keepalived:如果条件成立(即不存在名为 "nginx" 的进程),则执行该命令停止 Keepalived 服务。 ----------------------------------------------------------------------------------------------------- chmod +x check_nginx.sh #给执行权限
四、测试服务
浏览器访问 http://192.168.50.200 killall nginx # 关闭192.168.50.102的nginx ip addr show ens 33 #查看vip漂移到103主机 systemctl status keepalived #查看keepalived状态 102的keepalived自动停止
还没有评论,来说两句吧...