日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

keepalived+nginx安装

發布時間:2023/11/27 生活经验 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keepalived+nginx安装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
安裝keepalived+nginx做為公司服務器前端高可用反向代理

安裝nginx

1、yum install -y pcre pcre-devel gcc-c++ zlib zlib-devel openssl openssl-devel

2、cd /usr/local/soft

3、wget http://nginx.org/download/nginx-1.12.2.tar.gz

4、tar -zxvf nginx-1.12.2.tar.gz

5、cd nginx-1.12.2

6、./configure?--with-http_stub_status_module #這個模塊獲取nginx的一些狀態,以后zabbix會用到,其他的參數(nginx做反向代理)暫時不需要。具體的參數設置可以看?Nginx編譯參數詳細介紹

7、make

8、make install

9、firewall-cmd --zone=public --add-port=80/tcp --permanent

10、systemctl restart firewalld.service

?安裝完成后添加到開機啟動

echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

?

檢查是否啟動成功:

netstat?-ano|grep?80?有結果輸入說明啟動成功

?

nginx的一些命令和詳細參數

nginx -s reload|reopen|stop|quit? #重新加載配置|重啟|停止|退出 nginx

nginx -t?? #測試配置是否有語法錯誤

?

nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]

?

-?,-h?????????? : 打開幫助信息

-v????????????? : 顯示版本信息并退出

-V????????????? : 顯示版本和配置選項信息,然后退出

-t????????????? : 檢測配置文件是否有語法錯誤,然后退出

-q????????????? : 在檢測配置文件期間屏蔽非錯誤信息

-s signal?????? : 給一個 nginx 主進程發送信號:stop(停止), quit(退出), reopen(重啟), reload(重新加載配置文件)

-p prefix?????? : 設置前綴路徑(默認是:/usr/local/Cellar/nginx/1.2.6/)

-c filename???? : 設置配置文件(默認是:/usr/local/etc/nginx/nginx.conf)

-g directives?? : 設置配置文件外的全局指令

?

?

安裝keepalived

1、yum -y install libnl libnl-devel libnfnetlink-devel
2、tar -zxvf? keepalived-1.3.9.tar.gz
3、cd keepalived-1.3.9
4、./configure --prefix=/usr/local/keepalived
5、make && make install

安裝完成后添加到開機啟動
echo "/usr/local/keepalived/sbin/keepalived –f /usr/local/keepalived/etc/ keepalived/ keepalived.conf " >> /etc/rc.local
?

keepalived的VIP基本設置
vrrp_instance VI_1 {? 
????state MASTER?? #指定A節點為主節點 備用節點上設置為BACKUP即可? 
????interface eth0?? #綁定虛擬IP的網絡接口? 
????virtual_router_id 51? #VRRP組名,兩個節點的設置必須一樣,以指明各個節點屬于同一VRRP組? 
????priority 100?? #主節點的優先級(1-254之間),備用節點必須比主節點優先級低? 
????advert_int 1?? #組播信息發送間隔,兩個節點設置必須一樣? 
????authentication {?? #設置驗證信息,兩個節點必須一致? 
????????auth_type PASS? 
????????auth_pass 1111? 
????}? 
????virtual_ipaddress {?? #指定虛擬IP, 兩個節點設置必須一樣? 
????????192.168.200.16/24? 
????????192.168.200.17 /24? 
????????192.168.200.18 /24? 
????}? 
}?? 

?

按同樣的方法配置節點B并修改配置文件,可將A節點的配置文件復制到B節點,并修改以下幾項:

router_id? NodeB

state?? BACKUP

priority?? 99

其它項不必修改。

測試及驗證:

執行命令 ip a (注意ifconfig命令無法查看到配置的虛擬IP),可以看到節點A已經綁定了16/17/18的ip,此時,拔掉節點A的網線,在節點B上上執行ip a就發現虛擬IP已經綁定到節點B上,再恢復A節點的網線,虛擬IP又綁定回節點A之上。

?

(主從模式)腦裂問題

上述主從配置方式存在腦裂的可能,即兩個節點實際都處于正常工作狀態,但是無法接收到彼此的組播通知,這時兩個節點均強行綁定虛擬IP,導致不可預料的后果。

這時就需要設置仲裁,即每個節點必須判斷自身的狀態(應用服務狀態及自身網絡狀態),要實現這兩點可使用自定義shell腳本實現,通過周期性地檢查自身應用服務狀態,并不斷ping網關(或其它可靠的參考IP)均可。當自身服務異常、或無法ping通網關,則認為自身出現故障,就應該移除掉虛擬IP(停止keepalived服務即可)。主要借助keepalived提供的vrrp_script及track_script實現:

在keepalived的配置文件最前面加入以下代碼,定義一個跟蹤腳本:

vrrp_script check_local { #定義一個名稱為check_local的檢查腳本?

?? ?script "/usr/local/keepalived/bin/check_local.sh" #shell腳本的路徑?

??? interval 5? #運行間隔?

}?

再在vrrp_instance配置中加入以下代碼使用上面定義的檢測腳本:

track_script {?

? check_local?

}??

我們在/usr/local/keepalived/bin/check_local.sh定義的檢測規則可以是:

a.自身web服務故障(超時,http返回狀態不是200)

b.無法ping通網關

c.產生以上任何一個問題,均應該移除本機的虛擬IP(停止keepalived實例即可)

但這里有個小問題,如果本機或是網關偶爾出現一次故障,那么我們不能認為是服務故障。更好的做法是如果連續N次檢測本機服務不正常或連接N次無法ping通網關,才認為是故障產生,才需要進行故障轉移。另一方面,如果腳本檢測到故障產生,并停止掉了keepalived服務,那么當故障恢復后,keepalived是無法自動恢復的。我覺得利用獨立的腳本以秒級的間隔檢查自身服務及網關連接性,再根據故障情況控制keepalived的運行或是停止。

這里提供一個思路,具體腳本內容請大家根據自己的需要編寫即可。

?

(示例)nginx + keepalived 實現HA 主從模式

vi /etc/keepalived/keepalived.conf

編輯文件(主):

global_defs {?

?? router_id nginx_master?

}?

#監控服務.NGINX mysql等?

vrrp_script chk_nginx {?

??? script "/usr/local/nginx/check_nginx.sh"?

??? interval 2?

??? weight 2?

}?

?

vrrp_instance VI_1 {?

??? state MASTER?

??? interface eth0?

??? virtual_router_id 51?

??? priority 101?

??? advert_int 1?

??? authentication {?

??????? auth_type PASS?

??????? auth_pass 1111?

??? }?

??? virtual_ipaddress {?

??????? 192.168.1.254?

??? }?

??? track_script {?

??????? chk_nginx? #檢測腳本 上面配置的?

??? }?

}?

?

vi /etc/keepalived/keepalived.conf

編輯文件(從):

global_defs {?

?? router_id nginx_backup?

}?

#監控服務.NGINX mysql等?

vrrp_script chk_nginx {?

??? script "/usr/local/nginx/check_nginx.sh"?

??? interval 2?

??? weight 2?

}?

?

vrrp_instance VI_1 {?

??? state BACKUP?

??? interface eth0?

??? virtual_router_id 51?

??? priority 99?

??? advert_int 1?

??? authentication {?

??????? auth_type PASS?

??????? auth_pass 1111?

??? }?

??? virtual_ipaddress {?

??????? 192.168.1.254?

??? }?

??? track_script {?

??????? chk_nginx? #檢測腳本 上面配置的?

??? }?

}?

?

腳本/usr/local/nginx/check_nginx.sh"內容:

#!/bin/bash?

if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]?

then?

/usr/local/nginx/sbin/nginx?

sleep 5?

if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]?

then?

killall keepalived?

fi?

fi?

啟動并測試:

1.啟動兩臺機器上的nginx

2.啟動兩臺機器上的keepalived

此時使用命令 ip addr 查看虛擬IP綁定 可以看到主 有,從沒有,將主機的keepalived關掉,可以看到vip綁定到了從的上面

使用其他機器訪問進行訪問

查看是否能夠訪問,然后讓本機的nginx關掉,繼續看是否能夠訪問,如果能夠訪問則HA配置成功。

轉載于:https://www.cnblogs.com/xuyingzhong/p/8064144.html

總結

以上是生活随笔為你收集整理的keepalived+nginx安装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。