nginx+keepalived高可用主從配置的方法

一、系統(tǒng)環(huán)境及軟件版本

centos 6.6 x64
keepalived-1.2.18.tar.gz
nginx-1.6.2.tar.gz

主服務(wù)器:192.168.38.64

從服務(wù)器:192.168.38.66

vip :192.168.38.100

二、nginx安裝 (主從安裝一致)

1.安裝依賴環(huán)境

復(fù)制代碼?代碼如下:

yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-developenssl openssl-devel

2.上傳nginx到 opt 目錄

3.解壓安裝

  #?tar?-zxvf?nginx-1.6.2.tar.gz    #?cd?nginx-1.6.2   #?./configure?--prefix=/opt/nginx?(prefix=/opt/nginx?這個指定的是?nginx目錄)   #?make?&&?make?install

4.修改 nginx監(jiān)聽端口 及 index.html

# vi /opt/nginx/conf/nginx.conf

nginx+keepalived高可用主從配置的方法

vi /opt/nginx/html/index.html

nginx+keepalived高可用主從配置的方法

5. nginx 啟動及常用命令

配置測試: /opt/nginx/sbin/nginx -t 出現(xiàn)如下界面說明配置沒問題

nginx+keepalived高可用主從配置的方法

啟動 : /opt/nginx/sbin/nginx

重啟 : /opt/nginx/sbin/nginx -s reload

停止 : /opt/nginx/sbin/nginx -s stop

6.開機(jī)啟動 nginx

vi /etc/rc.local

加入: /opt/nginx/sbin/nginx

7.修改防火墻開放端口

vi /etc/sysconfig/iptables

添加 : -a input -p tcp -m state –state new -m tcp –dport 8888 -j accept

重啟防火墻 :?service iptables restart

8.問題

啟動 nginx遇到的問題

nginx+keepalived高可用主從配置的方法

vi /etc/ld.so.conf

添加: /opt/nginx/lib/

9.nginx的負(fù)載均衡

nginx的負(fù)載均衡主要是 由upstream 這一模塊完成

修改 nginx的配置文件

vi /data/nginx/conf/nginx.conf

添加如下內(nèi)容:(web_pools 這個名稱可變)

  upstream?web_pools?{?   server?10.0.6.108:7080weight=1;   ?server?10.0.0.85:8980weight=1;   }

將server節(jié)點(diǎn)下的location節(jié)點(diǎn)中的proxy_pass配置為:http:// + upstream名稱即可

結(jié)果如下:

nginx+keepalived高可用主從配置的方法

其中 weight是權(quán)重 backup是備用服務(wù)器 ,只有其它服務(wù)器宕機(jī)后,備用服務(wù)器才會啟動。

三、keepalived 安裝

1.keepalived上傳到 opt目錄下

2.解壓 安裝  

  tar?-zxvf?keepalived-1.2.18.tar.gz   cd?keepalived-1.2.18   ./configure?--prefix=/opt/keepalived   make?&&?make?install

3.將keepalived 安裝成 linux服務(wù)

cp?/opt/keepalived/etc/rc.d/init.d/keepalived?/etc/init.d/   cp?/opt/keepalived/etc/sysconfig/keepalived?/etc/sysconfig/   ln?-s?/opt/sbin/keepalived?/usr/sbin/   ln?-s?/opt/keepalived/sbin/keepalived?/sbin/

4.設(shè)置 keepalived 服務(wù)開機(jī)啟動

chkconfig?keepalived?on

5.修改 keepalived 配置文件

vi /etc/keepalived/keepalived.conf

  !?configuration?file?for?keepalived?(!、#都是注釋)    global_defs?{?#全局配置   notification_email?{     acassen@firewall.loc     failover@firewall.loc     sysadmin@firewall.loc   }   notification_email_from?alexandre.cassen@firewall.loc   smtp_server?192.168.200.1   smtp_connect_timeout?30   router_id?lvs_01?#這個配置要唯一   }     vrrp_script?chk_nginx?{     script?"/etc/keepalived/nginx_check.sh"?##?檢測?nginx?狀態(tài)的腳本路徑     interval?2?##?檢測時間間隔     weight?-20?##?如果條件成立,權(quán)重-20   }     vrrp_instance?vi_1?{?#實(shí)例?vi_1?名字可以隨意?但是不建議修改     state?master?#?主服務(wù)器master?從服務(wù)器?backup     interface?em1?#?em1?網(wǎng)卡     virtual_router_id?51?#virtual_router_id?主備要一致     priority?100?  #?優(yōu)先級?數(shù)字越大?優(yōu)先級越高?priority?的值?主服務(wù)器要大于?從服務(wù)器     advert_int?1  #設(shè)定master與backup負(fù)載均衡器之間同步檢查的時間間隔,單位是秒     authentication?{?#?主從通信?驗(yàn)證類型及密碼?       auth_type?pass  #設(shè)置vrrp驗(yàn)證類型,主要有pass和ah兩種       auth_pass?1111  #設(shè)置vrrp驗(yàn)證密碼,在同一個vrrp_instance下,master與backup必須使用相同的密碼才能正常通信     }       ##?將?track_script?塊加入?instance?配置塊     track_script?{       chk_nginx?##?執(zhí)行?nginx?監(jiān)控的服務(wù)     }      virtual_ipaddress?{     192.168.38.100/24?#vrrp?ha?虛擬地址?如果有多個vip,繼續(xù)換行填寫     }   } 

6.編寫 nginx 狀態(tài)檢測腳本

vi /etc/keepalived/nginx_check.sh

內(nèi)容如下:

  #!/bin/bash    a=`ps?-c?nginx?–no-header?|wc?-l`   if?[?$a?-eq?0?];then     /opt/nginx/sbin/nginx     sleep?2     if?[?`ps?-c?nginx?--no-header?|wc?-l`?-eq?0?];then        killall?keepalived     fi   fi

保存后,給腳本賦執(zhí)行權(quán)限:chmod +x/etc/keepalived/nginx_check.sh

7.注意點(diǎn):keepalived主從配置文件不同點(diǎn)

  a.router_id 不一致

  b.state 主服務(wù)器是master ,從服務(wù)器是 backup

  c.priority 主服務(wù)器 大于 從服務(wù)器

8.keepalived 命令

  啟動 : servicekeepalived start

  停止: servicekeepalived stop

  重啟: servicekeepalived restart

9.注意的問題

a.vip沒綁定成功

解決方案:ip addr 查看 本地ip所在網(wǎng)卡的名稱 ,然后修改 配置文件

nginx+keepalived高可用主從配置的方法

vi /etc/keepalived/keepalived.conf

nginx+keepalived高可用主從配置的方法

保存后 servicekeepalived restart 重啟 keepalived服務(wù)即可

10.測試

啟動主從nginx和keepalived 服務(wù)

主從服務(wù)器分別: ip add | grep 192.168.38.100

在192.168.38.64 可看到

nginx+keepalived高可用主從配置的方法

同時 在192.168.38.66

nginx+keepalived高可用主從配置的方法

當(dāng)殺死 主服務(wù)器上的keepalived 則 從服務(wù)器

nginx+keepalived高可用主從配置的方法

當(dāng)再次啟動主服務(wù)器上的keepalived則結(jié)果主服務(wù)器上有結(jié)果,從服務(wù)器上沒結(jié)果。

當(dāng)殺死 nginx后,keepalived則會自動啟動 nginx服務(wù)

11. keepalived腦裂 (ip add | grep 192.168.38.100 在主從都有結(jié)果)

解決方案:防火墻問題

iptables-iinput4-pvrrp-jaccept?   service?iptables?save  service?iptables?restart

nginx+keepalived高可用主從配置的方法

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊13 分享