美工统筹SEO,为企业电子商务营销助力!
keepalived双机热备nginx的设置装备摆设体例
一佰互联网站建造(www.taishanly.com) 宣布日期 2020-04-23 09:20:56 阅读数: 110
nginx今朝是我最经常利用的反向代办署理办事,线上情况为了能更好的应答突发情况,普通会利用keepalived双机热备nginx或利用docker跑nginx集群,keepalived是比拟传统的体例,固然用docker跑nginx集群更便利,但传统的体例老是有他的可取的处所,并且多学一些工具也很好。今后也会写若何利用docker跑nginx集群。
情况筹办:
2台centos: 192.168.0.105 和192.168.0.118, 假造IP(VIP)为192.168.0.119
设置装备摆设keepavlived
别离在105和118上装置keepalived
yum install keepalived
筹办心跳角本
keepalived的设置装备摆设相称矫捷,能够按时履行角本号令,用于心跳查抄,比方,咱们拜候nginx发明nginx不可拜候时,就封闭keepalived,从而切换到从nginx来完成不中断的办事撑持。
vi /etc/keepalived/keepalived.conf
#!/bin/bash count=0 for (( k=0; k<2; k++ )) do check_code=$( curl --connect-timeout 3 -sL -w "%{http_code}n" http://localhost:81 -o /dev/null ) if [ "$check_code" != "200" ]; then count=count +1 continue else count = 0 break fi done if [ "$count" != "0" ]; then killall keepalived exit 1 else exit 0 fi
这段角本的意义便是说每次的心跳查抄会履行一个for轮回,拜候http://localhost:81,在for的2次轮回中若是前往的状况都不是200就会封闭keepalived。这个角本在105和118两台机械上都要筹办好。
设置118机械上的keepalived为主节点,105机械上的keepalived为从节点,它们两个的设置装备摆设文件差不太多
vi /etc/keepalived/keepalived.conf
118机械keepalived的设置装备摆设文件
! Configuration File for keepalived vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" # 心跳检测角本 interval 2 #剧本履行距离,每2s检测一次 weight -5 #剧本成果致使的优先级变革,检测失利(剧本前往非0)则优先级 -5 fall 3 #检测持续2次失利才算肯定是真失利。会用weight削减优先级(1-255之间) rise 2 #检测1次胜利就算胜利。但不点窜优先级 } vrrp_instance VI_1 { state MASTER #指定keepalived的脚色,MASTER表现此主机是主办事器,BACKUP表现此主机是备用办事器 interface eth0 #指定监测收集的接口。实例绑定的网卡,由于在设置装备摆设假造IP的时辰必须是在已有的网卡上增加的 mcast_src_ip 192.168.0.118 ## 发送多播数据包时的源IP地点 virtual_router_id 51 #假造路由标识,MASTER和BACKUP必须是分歧的 priority 100 #界说优先级,数字越大,优先级越高 advert_int 2 #设定MASTER与BACKUP负载平衡器之间同步查抄的时候距离,单元是秒 authentication { #设置考证范例和暗码。主从必须一样 auth_type PASS #设置vrrp考证范例,首要有PASS和AH两种 auth_pass 1111 #设置vrrp考证暗码,在统一个vrrp_instance下,MASTER与BACKUP必须利用不异的暗码能力一般通讯 } virtual_ipaddress { 192.168.0.119 #VRRP 假造地点 若是有多个VIP,换行填写 } track_script { chk_nginx # 心跳剧本,即在 vrrp_script 局部指定的名字 } }
115机械上的角本对上面的角本稍做变化便可
转变 state MASTER -> state BACKUP,priority 100 -> priority 90,mcast_src_ip 192.168.0.118 -> mcast_src_ip 192.168.0.105。其余的处所坚持稳定,是不是是很简略。
! Configuration File for keepalived vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" interval 2 weight -5 } vrrp_instance VI_1 { state BACKUP # 点窜 interface eth0 mcast_src_ip 192.168.0.105 # 点窜 为本机IP virtual_router_id 51 priority 90 #数字变小 advert_int 2 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.119 } track_script { chk_nginx } }
到这里keepalived的简略设置装备摆设就完成了上面就启动keepalived
service keepalived start
装置Nginx
查抄nginx的依靠库是不是是完全
rpm -qa zlib rpm -qa zlib-devel rpm -qa openssl rpm -qa openssl-devel rpm -qa pcre rpm -qa pcre-devel rpm -qa gcc
若是不就装置
yum -y install gcc zlib zlib-devel openssl openssl-devel pcre-devel
下载并解压nginx
mkdir nginxsrc cd nginxsrc/
wget http://nginx.org/download/nginx-1.13.9.tar.gz tar zxvf nginx-1.13.9.tar.gz cd nginx-1.13.9/
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module
装置在/usr/local/nginx/sbin/nginx 目次下
make&&make install
履行胜利后会显现leaving directory
启动
/usr/local/nginx/sbin/nginx
查抄
ps aux|grep nginx
开机启动
vi /etc/rc.local
增加一行
/usr/local/nginx/sbin/nginx
由于我的机械上80端口被别的利用占用了,以是就点窜105和118的 nginx.conf 把端口80 点窜为81
vi /usr/local/nginx/conf/nginx.conf
别离特性105 和119上的index.html 加上一个ip以便们们辨认翻开的是哪一个ip上的index.html
vi /usr/local/nginx/html/index.html
nginx从头加载设置装备摆设
/usr/local/nginx/sbin/nginx -s reload
好了,咱们拜候一下
curl 192.168.0.119:81
前往的html是 118机械上的index.html
此刻咱们把118的nginx遏制
/usr/local/nginx/sbin/nginx -s stop
这时候118上的keepalived的心跳查抄角本发明nginx没法拜候会把keepalived封闭,而后转向从节点
咱们再拜候一下119
curl 192.168.0.119:81
在118上从头启动nginx和keepalived
再拜候119 前往的网址是118上的index.html
总结
以上所述是小编给大师先容的keepalived双机热备nginx的设置装备摆设体例,但愿对大师有所赞助,若是大师有任何疑难请给我留言,小编会实时答复大师的。在此也很是感激大师对网页设想网站的撑持!