keepalived雙機熱備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<p>  這段角本的意思就是說每次的心跳檢查會執行一個for循環,訪問,在for的2次循環中如果返回的狀態都不是200就會關閉keepalived。這個角本在105和118兩臺機器上都要準備好。</p><p>  設置118機器上的keepalived為主節點,105機器上的keepalived為從節點,它們兩個的配置文件差不太多</p><pre class="brush:bash;">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

keepalived雙機熱備nginx怎么配置

如果沒有就安裝?

yum?-y?install?gcc?zlib?zlib-devel?openssl?openssl-devel?pcre-devel

下載并解壓nginx

mkdir?nginxsrc cd?nginxsrc/

keepalived雙機熱備nginx怎么配置

wget?http://nginx.org/download/nginx-1.13.9.tar.gz tar?zxvf?nginx-1.13.9.tar.gz cd?nginx-1.13.9/

keepalived雙機熱備nginx怎么配置

./configure?--prefix=/usr/local/nginx?--with-http_ssl_module?--with-http_stub_status_module?--with-http_realip_module

安裝在/usr/local/nginx/sbin/nginx 目錄下?

make&amp;&amp;make?install

keepalived雙機熱備nginx怎么配置

執行成功后會顯示leaving Directory??

keepalived雙機熱備nginx怎么配置

啟動

/usr/local/nginx/sbin/nginx

keepalived雙機熱備nginx怎么配置

檢查

ps?aux|grep?nginx

keepalived雙機熱備nginx怎么配置

開機啟動

vi?/etc/rc.local

添加一行

/usr/local/nginx/sbin/nginx

keepalived雙機熱備nginx怎么配置

因為我的機器上80端口被別的應用占用了,所以就修改105和118的 nginx.conf 把端口80 修改為81

vi?/usr/local/nginx/conf/nginx.conf

?keepalived雙機熱備nginx怎么配置

分別個性105 和119上的index.html 加上一個ip以便們們識別打開的是哪個ip上的index.html

vi?/usr/local/nginx/html/index.html

keepalived雙機熱備nginx怎么配置

nginx重新加載配置

/usr/local/nginx/sbin/nginx?-s?reload

好了,我們訪問一下

curl?192.168.0.119:81

返回的html是 118機器上的index.html

keepalived雙機熱備nginx怎么配置

?現在我們把118的nginx停止

?/usr/local/nginx/sbin/nginx?-s?stop

這時118上的keepalived的心跳檢查角本發現nginx無法訪問會把keepalived關閉,然后轉向從節點

我們再訪問一下119

?curl?192.168.0.119:81

keepalived雙機熱備nginx怎么配置

在118上重新啟動nginx和keepalived

再訪問119 返回的網址是118上的index.html

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享