- Nginx?Master:?192.168.128.134??
- Nginx?Backup:?192.168.128.138??
- VIP:192.168.128.177??
Nginx安裝見nginx安裝配置文檔
Master與Backup的Nginx配置一致.
在MASTER跟BACKUP上安裝Keepalived:
- #tar?zxvf?keepalived-1.1.15.tar.gz?-C?../software??
- #cd?../software/keepalived-1.1.15??
- #./configure?–prefix=/usr/local/keepalived?&&?make?&&?make?install??
- #cp?/usr/local/keepalived/etc/rc.d/init.d/keepalived?/etc/rc.d/init.d/??
- #cp?/usr/local/keepalived/etc/sysconfig/keepalived?/etc/sysconfig/??
- #mkdir?/etc/keepalived??
- #cp?/usr/local/keepalived/etc/keepalived/keepalived.conf?/etc/keepalived/??
- #cp?/usr/local/keepalived/sbin/keepalived?/usr/sbin/??
- #service?keepalived?start|stop?#做成系統啟動服務方便管理.??
修改MASTER 的keepalived.conf
- #vim?/etc/keepalived/keepalived.conf??
- vrrp_script?chk_http_port?{?????????
- ????????script?"/usr/local/scripts/nginx_pid.sh"?###監控腳本??
- ????????interval?2?###監控時間??
- ????????weight?2??
- ????????}??
- vrrp_instance?VI_1?{??
- ????????state?MASTER?###?設置為主??
- ????????interface?eth0?###?監控網卡??
- ????????virtual_router_id?51?###?這個兩臺服務器必須一樣??
- ????????priority?101?###?權重值MASTRE一定要高于BAUCKUP??
- ????????authentication?{??
- ????????auth_type?PASS?###?加密??
- ????????auth_pass?test?###?加密的密碼,兩臺服務器一定要一樣,不然會出錯??
- ????????}??
- ????????track_script?{??
- ????????chk_http_port?###?執行監控的服務??
- ????????}??
- ????????virtual_ipaddress?{??????????????????
- ????????192.168.128.177?###?VIP?地址??????????
- ????????}??
- }??
修改BACKUP keepalived.conf
- #vim?/etc/keepalived/keepalived.conf??
- vrrp_script?chk_http_port?{??
- ????????script?"/opt/nginx_pid.sh"??
- ????????interval?2??
- ????????weight?2??
- }??
- vrrp_instance?VI_1?{??
- ????????state?BACKUP?###?設置為備份機??
- ????????interface?eth0??
- ????????virtual_router_id?51?###?與?MASTRE?設置值一樣??
- ????????priority?80?###?比?MASTRE權重值低??
- ??
- ????????authentication?{??
- ????????auth_type?PASS??
- ????????auth_pass?test?###?密碼?與?MASTRE?一樣??
- ????????}??
- ????????track_script?{??
- ????????chk_http_port??
- ????????}??
- ????????virtual_ipaddress?{??
- ????????192.168.128.177??
- ????????}??
- }??
編寫監控nginx監控腳本
- #vim?/usr/local/scripts/nginx_pid.sh??
- #!/bin/bash??
- A=`ps?-C?nginx?--no-header?|wc?-l`?##?查看是否有?nginx進程?把值賦給變量A??
- if?[?$A?-eq?0?];then?<span?style="white-space:pre">?</span>##?如果沒有進程值得為?零??
- <span?style="white-space:pre">??</span>/usr/local/nginx/sbin/nginx??
- <span?style="white-space:pre">??</span>sleep?3??
- <span?style="white-space:pre">??</span>if?[?`ps?-C?nginx?--no-header?|wc?-l`?-eq?0?];then??
- <span?style="white-space:pre">??</span>killall?keepalived?##?則結束?keepalived?進程??
- <span?style="white-space:pre">??</span>fi??
- fi??
測試,分別在兩個服務器 啟動 nginx 和 keepalived
- #/usr/local/nginx/sbin/nginx??
- #/etc/init.d/keepalived?start??
監控 Nginx Mastaer 的日志
- May?12?17:33:44?localhost?Keepalived_vrrp:?Configuration?is?using?:?35676?Bytes??
- May?12?17:33:44?localhost?Keepalived:?Starting?VRRP?child?process,?pid=1245??
- May?12?17:33:44?localhost?Keepalived_vrrp:?VRRP?sockpool:?[ifindex(2),?proto(112),?fd(8,9)]??
- May?12?17:33:45?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?Transition?to?MASTER?STATE??
- May?12?17:33:46?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?Entering?MASTER?STATE??
- May?12?17:33:46?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?setting?protocol?VIPs.??
- May?12?17:33:46?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?Sending?gratuitous?ARPs?on?eth0?for?192.168.128.177??
- May?12?17:33:46?localhost?avahi-daemon[2344]:?Registering?new?address?record?for?192.168.128.177?on?eth0.??
- May?12?17:33:46?localhost?Keepalived_vrrp:?Netlink?reflector?reports?IP?192.168.128.177?added??
監控 Nginx Backup 的日志
- May?11?22:28:21?localhost?Keepalived:?Starting?Keepalived?v1.1.15?(05/11,2010)??
- May?11?22:28:21?localhost?Keepalived_vrrp:?Using?MII-BMSR?NIC?polling?thread...??
- May?11?22:28:21?localhost?Keepalived_vrrp:?Registering?Kernel?netlink?reflector??
- May?11?22:28:21?localhost?Keepalived_vrrp:?Registering?Kernel?netlink?command?channel??
- May?11?22:28:21?localhost?Keepalived_vrrp:?Registering?gratutious?ARP?shared?channel??
- May?11?22:28:21?localhost?Keepalived:?Starting?VRRP?child?process,?pid=27040??
- May?11?22:28:21?localhost?Keepalived_vrrp:?Opening?file?'/etc/keepalived/keepalived.conf'.??
- May?11?22:28:21?localhost?Keepalived_vrrp:?Configuration?is?using?:?35538?Bytes??
- May?11?22:28:21?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?Entering?BACKUP?STATE??
- May?11?22:28:21?localhost?Keepalived_vrrp:?VRRP?sockpool:?[ifindex(2),?proto(112),?fd(7,8)]??
- May?11?22:28:23?localhost?Keepalived_vrrp:?VRRP_Script(chk_http_port)?succeeded??
看日志可以看出,兩臺服務器的 MASTRE 和 BACUKUP 已經都正常了
現在我們把Master的Nginx停掉.查看Backup的日志
- May?11?22:28:21?localhost?Keepalived:?Starting?VRRP?child?process,?pid=27040??
- May?11?22:28:21?localhost?Keepalived_vrrp:?Opening?file?'/etc/keepalived/keepalived.conf'.??
- May?11?22:28:21?localhost?Keepalived_vrrp:?Configuration?is?using?:?35538?Bytes??
- May?11?22:28:21?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?Entering?BACKUP?STATE??
- May?11?22:28:21?localhost?Keepalived_vrrp:?VRRP?sockpool:?[ifindex(2),?proto(112),?fd(7,8)]??
- May?11?22:28:23?localhost?Keepalived_vrrp:?VRRP_Script(chk_http_port)?succeeded??
- May?11?22:29:25?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?Transition?to?MASTER?STATE??
- May?11?22:29:26?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?Entering?MASTER?STATE??
- May?11?22:29:26?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?setting?protocol?VIPs.??
- May?11?22:29:26?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?Sending?gratuitous?ARPs?on?eth0?for?192.168.128.177??
可以看出backup已經變成master
現在再啟動原來master的nginx,再查看backup的日志
- May?11?22:30:32?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?Received?higher?prio?advert??
- May?11?22:30:32?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?Entering?BACKUP?STATE??
- May?11?22:30:32?localhost?Keepalived_vrrp:?VRRP_Instance(VI_1)?removing?protocol?VIPs.??
- May?11?22:30:32?localhost?avahi-daemon[2409]:?Withdrawing?address?record?for?192.168.128.177?on?eth0.??
可以看出又變回了backup.
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
