环境
172.16.91.218 主
172.16.91.219
安装包版本
nginx-1.14.0.tar.gz
keepalived-2.0.7.tar.gz
把 nginx,keepalived 压缩包 上传到 /usr/local/src/
两个机器 都 安装 nginx
- 安装 依赖 包
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
- 把 nginx 解压 放到 /usr/local/ 并重命名为 nginx
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf
- 编译 安装
cd /usr/local/nginx/
make && make install
基本 命令使用
Nginx 启动
Nginx -s stop 关闭 nginx
Nginx -s start 启动nginx
两台机器 都要 安装 keepalived
- 安装 所需要 的依赖包
yum install -y gcc;
yum install -y openssl-devel;
yum install -y libnl;
yum install -y libnl-devel;
yum install -y libnfnetlink-devel;
- 解压,并 放到 /usr/local /, 并 重命名为 keepalived
- ./configure --prefix=/usr/local/keepalived/ --sysconf /etc
4
cd /usr/local/keepalived/
make && make install
ln -s sbin/keepalived /sbin/
cd keepalived
cp etc/init.d/keepalived /etc/init.d/
chkconfig --add keepalived
chkconfig keepalived on
service keepalived start
主 服务器 keepalived 的 keepalived 配置
! Configuration File for keepalived
global_defs { router_id LVS_DEVEL }
vrrp_script chk_nginx_service { script "/usr/local/keepalived/nginx-ha-check.sh" interval 2 weight -10 }
vrrp_instance VI_1 { state MASTER interface ens160 virtual_router_id 51 priority 100 advert_int 1
authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.91.100 } track_script { chk_nginx_service } }
virtual_server 172.16.91.100 80 { delay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP
real_server 172.16.91.218 80 { weight 1 TCP_CHECK { connect_timeout 3 delay_before_retry 3 connect_port 80 }
} }
} |
从 服务器 keepalived 的 keepalived 配置
! Configuration File for keepalived
global_defs { router_id LVS_DEVEL }
vrrp_script chk_nginx_service { script "/usr/local/keepalived/nginx-ha-check.sh" interval 2 weight -10 }
vrrp_instance VI_1 { state BACKUP interface ens160 virtual_router_id 51 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.16.91.100 }
track_script { chk_nginx_service }
}
virtual_server 172.16.91.100 80 { delay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP
real_server 172.16.91.219 80 { weight 1 TCP_CHECK { connect_timeout 3 delay_before_retry 3 connect_port 80 }
} }
} |
触发的脚本
#! /bin/sh A=`ps -C nginx --no-header | wc -l` if [ $A -eq 0 ] then echo 'nginx server is died' service keepalived stop fi ~ |
Keepalived 配置文件 讲解
global_defs { router_id LVS_DEVEL 运行 keepalived 服务器的标识,在一个网络内应该是唯 一的 } vrrp_instance VI_1 { #vrrp 实例定义部分 state MASTER #设置 lvs 的状态,MASTER 和 BACKUP 两种,必须大写 interface ens33 #设置对外服务的接口 virtual_router_id 51 #设置虚拟路由标示,这个标示是一个数字,同一个 vr rp 实例使用唯一标示 priority 100 #定义优先级,数字越大优先级越高,在一个 vrrp——instance 下, master 的优先级必须大于 backup advert_int 1 #设定 master 与 backup 负载均衡器之间同步检查的时间间隔,单 位是秒 authentication { #设置验证类型和密码 auth_type PASS auth_pass 1111 #验证密码,同一个 vrrp_instance 下 MASTER 和 BACKU P 密码必须相同 } virtual_ipaddress { #设置虚拟 ip 地址,可以设置多个,每行一个 192.168.11.100 } } virtual_server 192.168.11.100 80 { #设置虚拟服务器,需要指定虚拟 ip 和服务 端口 delay_loop 6 #健康检查时间间隔 lb_algo rr #负载均衡调度算法 lb_kind NAT #负载均衡转发规则 persistence_timeout 50 #设置会话保持时间 protocol TCP #指定转发协议类型,有 TCP 和 UDP 两种 real_server 192.168.11.160 80 { #配置服务器节点 1,需要指定 real serve r 的真实 IP 地址和端口 weight 1 #设置权重,数字越大权重越高 TCP_CHECK { #realserver 的状态监测设置部分单位秒 connect_timeout 3 #超时时间 delay_before_retry 3 #重试间隔 connect_port 80 #监测端口 } } } |