keepalived 双实例_nginx互为主备
一、實驗目的:兩臺nginx服務器,利用keepalived實現雙實例互為主備,并能夠對http服務檢測動態切換主備,主服務器檢測失敗后,重啟對應http服務。
二、實驗環境
| 服務器類型 | IP | 軟件 | 主備情況 | VIP |
| CentOS 6.6(nginx1) | 172.18.100.11 | nginx+keepalived | 實例VI_1為主服務器;實例VI_2為輔服務器 | 172.18.100.21 |
| CentOS 6.6(nginx2) | 172.18.100.12 | nginx+keepalived | 實例VI_2為主服務器;實例VI_1為輔服務器 | 172.18.100.22 |
三、操作步驟
????1.安裝nginx并設置測試頁;
?? ? 2.安裝keepalived實現地址雙主備切換;
????3.編寫檢測服務腳本;
????4.編寫狀態腳本。
四、安裝nginx服務
五、安裝keepalived,配置
? nginx1 keepalived.conf配置
!?Configuration?File?for?keepalivedglobal_defs?{notification_email?{root@localhost}notification_email_from?root@localhostsmtp_server?127.0.0.1smtp_connect_timeout?30router_id?node1vrrp_mcast_group4?224.0.100.18 } vrrp_instance?VI_1?{state?MASTERinterface?eth0virtual_router_id?20priority?100advert_int?1authentication?{auth_type?PASSauth_pass?11112222}virtual_ipaddress?{172.18.100.21?} } vrrp_instance?VI_2?{state?BACKUPinterface?eth0virtual_router_id?22priority?98advert_int?1authentication?{auth_type?PASSauth_pass?11112222}virtual_ipaddress?{172.18.100.22} }????nginx2 keepalived.conf
!?Configuration?File?for?keepalivedglobal_defs?{notification_email?{root@localhost}notification_email_from?root@localhostsmtp_server?127.0.0.1smtp_connect_timeout?30router_id?node2vrrp_mcast_group4?224.0.100.18 } vrrp_instance?VI_1?{state?BACKUPinterface?eth0virtual_router_id?20priority?98advert_int?1authentication?{auth_type?PASSauth_pass?11112222}virtual_ipaddress?{172.18.100.21} } vrrp_instance?VI_2?{state?MASTERinterface?eth0virtual_router_id?22priority?100advert_int?1authentication?{auth_type?PASSauth_pass?11112222}virtual_ipaddress?{172.18.100.22} }?測試:停掉nginx1的keepalived服務,可以看到服務地址的全都配置到了nginx2服務器網卡上,反之亦然。
六、配置服務檢測腳本
在每個主機的keepalived兩個實例中全局中添加
在keepalived vrrp實例上下文中添加檢測track
track_script?{chk_httpd }? 測試:查看關掉nginx服務后,服務主動降低優先級,主節點切換為備份節點,IP地址漂移到另一個服務器。這時候無論那個服務器的服務進程宕掉(當然可以用其他方式測試,注意效率,畢竟一秒一次測試),服務都能將地址和服務轉移到另一臺服務器。
七、添加服務狀態檢測腳本,對服務失敗的服務器重啟服務
為每個主服務器主節點添加檢測腳本:當主節點服務不可用時,重啟服務。
注意腳本需要可執行權限,且只能有一個。
/etc/keepalived/changToBackup.sh
#!/bin/sh service?httpd?restart?&&?echo?"httpd?service?restart?success.@$(date?+'%F?%T')"為每個主服務器實例上下文中添加檢測腳本:
notify_backup?"/etc/keepalived/changToBackup.sh"? 測試:當主動將一臺服務的服務停掉后,服務會將服務重啟,主服務器從主服務器轉換動輔服務器,在切換到主服務器,自動完成!不必手動操作!
轉載于:https://blog.51cto.com/kingslanding/1772422
總結
以上是生活随笔為你收集整理的keepalived 双实例_nginx互为主备的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 张良王者荣耀打法
- 下一篇: PopupWindow的一些使用总结