keepalived安装与配置_Nginx_Keepalived高可用配置
利用keepalived實(shí)現(xiàn)高可靠配置(HA)
2.1. 高可靠概念
HA(High Available):高可用性集群,是保證業(yè)務(wù)連續(xù)性的有效解決方案,一般有兩個(gè)或兩個(gè)以上的節(jié)點(diǎn),且分為活動(dòng)節(jié)點(diǎn)及備用節(jié)點(diǎn)。
2.2. 高可靠軟件keepalived
keepalive是一款可以實(shí)現(xiàn)高可靠的軟件,通常部署在2臺(tái)服務(wù)器上,分為一主一備。Keepalived可以對(duì)本機(jī)上的進(jìn)程進(jìn)行檢測(cè),一旦Master檢測(cè)出某個(gè)進(jìn)程出
現(xiàn)問(wèn)題,將自己切換成Backup狀態(tài),然后通知另外一個(gè)節(jié)點(diǎn)切換成Master狀態(tài)。
2.3. keepalived安裝
下載keepalived官網(wǎng):http://keepalived.org
將keepalived解壓到/usr/local/src目錄下:tar -zxvf keepalived-1.2.19.tar.gz -C /usr/local/src
進(jìn)入到/usr/local/src/keepalived-1.2.19目錄:cd /usr/local/src/keepalived-1.2.19
開(kāi)始configure(檢查安裝環(huán)境,并指定將來(lái)要安裝的路徑):./configure --prefix=/usr/local/keepalived
#編譯并安裝:make && make install
2.4. 將keepalived添加到系統(tǒng)服務(wù)中
拷貝執(zhí)行文件:cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
將init.d文件拷貝到etc下,加入開(kāi)機(jī)啟動(dòng)項(xiàng):cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
將keepalived文件拷貝到etc下:cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
創(chuàng)建keepalived文件夾:mkdir -p /etc/keepalived
將keepalived配置文件拷貝到etc下:cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
添加可執(zhí)行權(quán)限:chmod +x /etc/init.d/keepalived
添加keepalived到開(kāi)機(jī)啟動(dòng):chkconfig --add keepalived chkconfig keepalived on
2.4. 配置keepalived虛擬IP
1.基本服務(wù)器宕機(jī)的主從切換配置
兩臺(tái)nginx服務(wù)器,分別安裝keepalived,配置/etc/keepalived/keepalived.conf
主從配置:
主nginx修改配置文件: /etc/keepalived/keepalived.conf
#MASTER節(jié)點(diǎn)
#全局配置global_defs { notification_email { #指定keepalived在發(fā)生切換時(shí)需要發(fā)送email到的對(duì)象,一行一個(gè) XXX@XXX.com } notification_email_from Alexandre.Cassen@firewall.loc #指定發(fā)件人 smtp_server 192.168.200.1 #指定smtp服務(wù)器地址 smtp_connect_timeout 30 #指定smtp連接超時(shí)時(shí)間 router_id LVS_DEVEL #運(yùn)行keepalived機(jī)器的一個(gè)標(biāo)識(shí)}vrrp_instance VI_1 { state MASTER #指定A節(jié)點(diǎn)為主節(jié)點(diǎn) 備分機(jī)上設(shè)置為BACKUP即可 interface eth0 #設(shè)置實(shí)例綁定的網(wǎng)卡 virtual_router_id 51 #VRRP組名,兩個(gè)節(jié)點(diǎn)的設(shè)置必須一樣,以指明各個(gè)節(jié)點(diǎn)屬于同一VRRP組(同一實(shí)例下virtual_router_id必須相同) priority 100 #主節(jié)點(diǎn)的優(yōu)先級(jí)(1-254之間),備用節(jié)點(diǎn)必須比主節(jié)點(diǎn)優(yōu)先級(jí)低 advert_int 1 #MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒 authentication { #設(shè)置驗(yàn)證信息,兩個(gè)節(jié)點(diǎn)必須一致 auth_type PASS #主從服務(wù)器驗(yàn)證方式 auth_pass 1111 } virtual_ipaddress { #指定虛擬IP, 兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣 192.168.232.203/24 #如果兩個(gè)nginx的ip分別是192.168.232.201,,...205,則此處的虛擬ip跟它倆同一個(gè)網(wǎng)段即可,24子網(wǎng)掩碼(255.255.255.0),可以多個(gè)虛擬IP,換行即可 }}備nginx
修改備nginx下/etc/keepalived/keepalived.conf文件
配置備nginx時(shí)需要注意:需要修改state為BACKUP , priority比MASTER低,virtual_router_id和master的值一致
#BACKUP節(jié)點(diǎn)
global_defs {}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.232.203/24 }}#分別啟動(dòng)兩臺(tái)機(jī)器上的keepalived:tail /var/log/message 查看日志。
service keepalived start用ip addr查看主從:
主機(jī):
備機(jī):
此時(shí)如果主機(jī)宕機(jī)則(service keepalived stop)備機(jī)會(huì)頂替主機(jī)獲得虛擬ip
首先將主機(jī)的keepalived關(guān)閉:
再次查看主機(jī):ip addr
備機(jī):
至此,基本服務(wù)器宕機(jī)的主從切換配置完畢
訪問(wèn)虛擬ip是不是還能輪詢(xún)?cè)L問(wèn)tomcat
2.基于nginx進(jìn)程死掉的主從切換配置
keepalived是通過(guò)檢測(cè)keepalived進(jìn)程是否存在判斷服務(wù)器是否宕機(jī),如果keepalived進(jìn)程在但是nginx進(jìn)程不在了那么keepalived是不會(huì)做主備切換,所以我們需要寫(xiě)
個(gè)腳本來(lái)監(jiān)控nginx進(jìn)程是否存在,如果nginx不存在就將keepalived進(jìn)程殺掉。
在主nginx上需要編寫(xiě)nginx進(jìn)程檢測(cè)腳本(check_nginx.sh),判斷nginx進(jìn)程是否存在,如果nginx不存在就將keepalived進(jìn)程殺掉,check_nginx.sh內(nèi)容如下:
#!/bin/bash# 如果進(jìn)程中沒(méi)有nginx則將keepalived進(jìn)程kill掉A=`ps -C nginx --no-header |wc -l` ## 查看是否有 nginx進(jìn)程 把值賦給變量A if [ $A -eq 0 ];then ## 如果沒(méi)有進(jìn)程值得為 零 service keepalived stop ## 則結(jié)束 keepalived 進(jìn)程fi將check_nginx.sh拷貝至/etc/keepalived下,
注意修改/etc/keepalived/check_nginx.sh的可執(zhí)行權(quán)限
修改主nginx的keepalived.conf,添加腳本定義檢測(cè):
注意下邊紅色標(biāo)識(shí)地方:
#全局配置global_defs { notification_email { #指定keepalived在發(fā)生切換時(shí)需要發(fā)送email到的對(duì)象,一行一個(gè) XXX@XXX.com } notification_email_from miaoruntu@itcast.cn #指定發(fā)件人 #smtp_server XXX.smtp.com #指定smtp服務(wù)器地址 #smtp_connect_timeout 30 #指定smtp連接超時(shí)時(shí)間 router_id LVS_DEVEL #運(yùn)行keepalived機(jī)器的一個(gè)標(biāo)識(shí)}vrrp_script check_nginx { script "/etc/keepalived/check_nginx.sh" ##監(jiān)控腳本 interval 2 ##時(shí)間間隔,2秒 weight 2 ##權(quán)重}vrrp_instance VI_1 { state MASTER #標(biāo)示狀態(tài)為MASTER 備份機(jī)為BACKUP interface eth0 #設(shè)置實(shí)例綁定的網(wǎng)卡 virtual_router_id 51 #同一實(shí)例下virtual_router_id必須相同 priority 100 #MASTER權(quán)重要高于BACKUP 比如BACKUP為99 advert_int 1 #MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒 authentication { #設(shè)置認(rèn)證 auth_type PASS #主從服務(wù)器驗(yàn)證方式 auth_pass 8888 } track_script { check_nginx #監(jiān)控腳本 } virtual_ipaddress { #設(shè)置vip 192.168.101.100 #可以多個(gè)虛擬IP,換行即可 }}修改后重啟keepalived
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的keepalived安装与配置_Nginx_Keepalived高可用配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 文件服务器缓存加速,存储缓存为文件传输提
- 下一篇: 【开源项目】向Nginx-RTMP服务器