keepalived实现nginx的高可用(双主模型)
實驗環(huán)境:
? ? RS1:rip(172.16.125.7),安裝httpd軟件包;
? ? RS2:rip(172.16.125.8),安裝httpd軟件包;
? ? director1(7-1.lcs.com):vip(172.16.125.100),dip(172.16.125.5),安裝nginx、keepalived軟件包。
? ? director2(7-2.lcs.com):vip(172.16.125.110),dip(172.16.125.6),安裝nginx、keepalived軟件包。
? ? 首先關(guān)閉所有節(jié)點上iptables和selinux,同時進(jìn)行時間同步。
使用雙主模型實現(xiàn)nginx的高可用:
(1)在兩臺keepalived高可用主機上安裝keepalived和nginx軟件包,并提供配置文件。
? ? a.首先使用時間同步,保證節(jié)點上的時間是同步的。
? ? b.首先使用nginx反向代理實現(xiàn)后臺RS上的web服務(wù)的負(fù)載均衡,在nginx的主配置文件(/etc/nginx/nginx.conf)中,進(jìn)行修改。
? ??? ? 在http段中添加upstream,將后端兩臺RS加入到該upstream中。
upstream?myblancer?{server?172.16.125.7:80;server?172.16.125.8:80;}????????在server段中l(wèi)ocation /{}中加入代理,實現(xiàn)負(fù)載均衡調(diào)度。
location?/?{proxy_pass?http://myblancer;}????c.進(jìn)行檢測,是否實現(xiàn)了后端RS的輪詢調(diào)度。
????????
????????
(2)上述說明已經(jīng)通過nginx的反向代理實現(xiàn)了http服務(wù)的負(fù)載均衡。在此處就可以開始配置keepalived的主配置文件,實現(xiàn)對nginx的高可用。詳細(xì)配置文件如下:
? ? keepalived的配置文件1:
global_defs?{notification_email?{root@localhostfailover@firewall.locsysadmin@firewall.loc}notification_email_from?Alexandre.Cassen@firewall.locsmtp_server?127.0.0.1smtp_connect_timeout?30router_id?LVS_DEVEL } vrrp_script?chk_nginx?{?script?"killall?-0?nginx?&>?/dev/null"interval?1weight?-20 }vrrp_instance?VI_1?{state?MASTERinterface?eno16777736virtual_router_id?100priority?100advert_int?1authentication?{auth_type?PASSauth_pass?100}virtual_ipaddress?{172.16.125.100/16?dev?eno16777736?label?eno16777736:0}track_script?{chk_nginx??} }vrrp_instance?VI_2?{state?BACKUPinterface?eno16777736virtual_router_id?110priority?90advert_int?1authentication?{auth_type?PASSauth_pass?110}virtual_ipaddress?{172.16.125.110/16?dev?eno16777736?label?eno16777736:1}track_script?{chk_nginx} }????keepalived配置文件2:
global_defs?{notification_email?{root@localhostfailover@firewall.locsysadmin@firewall.loc}notification_email_from?Alexandre.Cassen@firewall.locsmtp_server?127.0.0.1smtp_connect_timeout?30router_id?LVS_DEVEL } vrrp_script?chk_nginx?{script?"killall?-0?nginx?&>?/dev/null"interval?1weight?-20 }? vrrp_instance?VI_1?{state?BACKUPinterface?eno16777736virtual_router_id?100priority?90advert_int?1authentication?{auth_type?PASSauth_pass?100}virtual_ipaddress?{172.16.125.100/16?dev?eno16777736?label?eno16777736:0}track_script?{chk_nginx} }vrrp_instance?VI_2?{state?MASTERinterface?eno16777736virtual_router_id?110priority?100advert_int?1authentication?{auth_type?PASSauth_pass?110}virtual_ipaddress?{172.16.125.110/16?dev?eno16777736?label?eno16777736:1}track_script?{chk_nginx} }????使用如下這個腳本檢測nginx服務(wù)的狀態(tài),如果nginx服務(wù)發(fā)生了問題,那么在該服務(wù)器上的vip會自動流動到另一臺高可用服務(wù)器上。使用下邊這個腳本要保證高可用服務(wù)器上有killall命令,該命令是由psmisc軟件包提供。
vrrp_script?chk_nginx?{script?"killall?-0?nginx?&>?/dev/null"interval?1weight?-20 }????????通過這一步的keepalived的配置,keepalived服務(wù)已經(jīng)配置完成,那么在這兩臺director上啟動keepalived和nginx服務(wù)。
? ??? ? a.查看兩臺director上vip是否已經(jīng)添加成功。
????????
????????
????????b.分別訪問vip(172.16.125.100)和vip(172.16.125.110)。
????????
????c.在director1上關(guān)閉nginx服務(wù),檢測到vip已經(jīng)消失,轉(zhuǎn)移到director2上。
????????
????????
????????
轉(zhuǎn)載于:https://blog.51cto.com/angrybird/1706598
總結(jié)
以上是生活随笔為你收集整理的keepalived实现nginx的高可用(双主模型)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fedora 19 Mate环境安装Gn
- 下一篇: java1.8--改进的接口