nginx+keepalived详细配置信息
Nginx + Keepalived
第一步:
下載keepalived地址:http://www.keepalived.org/download.html
解壓安裝:
tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/
yum install -y openssl openssl-devel(需要安裝一個軟件包)
cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived
make && make install
第二步:
將keepalived安裝成Linux系統服務,因為沒有使用keepalived的默認安裝路徑(默認路徑:/usr/local),安裝完成之后,需要做一些修改工作:
首先創建文件夾,將keepalived配置文件進行復制:
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
然后復制keepalived腳本文件:
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/sbin/keepalived /usr/sbin/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
可以設置開機啟動:chkconfig keepalived on,到此我們安裝完畢!
第三步:對配置文件進行修改:vim /etc/keepalived/keepalived.conf
keepalived.conf配置文件說明:
(一)Master
! Configuration File for keepalived
global_defs {
router_id bhz005 ##標識節點的字符串,通常為hostname
}
keepalived 會定時執行腳本并且對腳本的執行結果進行分析,動態調整vrrp_instance的優先級。這里的權重weight 是與下面的優先級priority有關,如果執行了一次檢查腳本成功,則權重會-20,也就是由100 - 20 變成了80,Master 的優先級為80 就低于了Backup的優先級90,那么會進行自動的主備切換。
如果腳本執行結果為0并且weight配置的值大于0,則優先級會相應增加。
如果腳本執行結果不為0 并且weight配置的值小于0,則優先級會相應減少。
vrrp_script chk_nginx {
script “/etc/keepalived/nginx_check.sh” ##執行腳本位置
interval 2 ##檢測時間間隔
weight -20 ## 如果條件成立則權重減20(-20)
}
定義虛擬路由 VI_1為自定義標識。
vrrp_instance VI_1 {
state MASTER ## 主節點為MASTER,備份節點為BACKUP
## 綁定虛擬IP的網絡接口(網卡),與本機IP地址所在的網絡接口相同(我這里是eth6)
interface eth6
virtual_router_id 172 ## 虛擬路由ID號
mcast_src_ip 192.168.1.172 ## 本機ip地址
priority 100 ##優先級配置(0-254的值)
Nopreempt ##
advert_int 1 ## 組播信息發送間隔,倆個節點必須配置一致,默認1s
authentication {
auth_type PASS
auth_pass bhz ## 真實生產環境下對密碼進行匹配
}
}
(二)Backup
! Configuration File for keepalived
global_defs {
router_id bhz006
}
vrrp_script chk_nginx {
script “/etc/keepalived/nginx_check.sh”
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eth7
virtual_router_id 173
mcast_src_ip 192.168.1.173
priority 90 ##優先級配置
advert_int 1
authentication {
auth_type PASS
auth_pass bhz
}
}
(三)nginx_check.sh 腳本:
#!/bin/bash
A=ps -C nginx –no-header |wc -l
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ ps -C nginx --no-header |wc -l -eq 0 ];then
killall keepalived
fi
fi
(四)我們需要把master的keepalived配置文件 copy到master機器(172)的 /etc/keepalived/ 文件夾下,在把backup的keepalived配置文件copy到backup機器(173)的 /etc/keepalived/ 文件夾下,最后把nginx_check.sh腳本分別copy到兩臺機器的 /etc/keepalived/文件夾下。
(五)nginx_check.sh腳本授權。賦予可執行權限:chmod +x /etc/keepalived/nginx_check.sh
(六)啟動2臺機器的nginx之后。我們啟動兩臺機器的keepalived
/usr/local/nginx/sbin/nginx
service keepalived start
ps -ef | grep nginx
ps -ef | grep keepalived
可以進行測試,首先看一下倆臺機器的ip a 命令下 都會出現一個虛擬ip,我們可以停掉 一個機器的keepalived,然后測試,命令:service keepalived stop。結果發現當前停掉的機器已經不可用,keepalived會自動切換到另一臺機器上。
(七)我們可以測試在nginx出現問題的情況下,實現切換,這個時候我們只需要把nginx的配置文件進行修改,讓其變得不可用,然后強殺掉nginx進程即可,發現也會實現自動切換服務器節點。
總結
以上是生活随笔為你收集整理的nginx+keepalived详细配置信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载保存】Lucene7.1.0超详细
- 下一篇: 记录一次服务进程强行退出的问题排查过程