小編給大家分享一下nginx+keepalived如何實(shí)現(xiàn)高可用主從配置,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
目前成都創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、渭南網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。一、系統(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 這個(gè)指定的是 nginx目錄) # make && make install
4.修改 nginx監(jiān)聽端口 及 index.html
# vi /opt/nginx/conf/nginx.conf
vi /opt/nginx/html/index.html
5. nginx 啟動(dòng)及常用命令
配置測(cè)試: /opt/nginx/sbin/nginx -t 出現(xiàn)如下界面說明配置沒問題
啟動(dòng) : /opt/nginx/sbin/nginx
重啟 : /opt/nginx/sbin/nginx -s reload
停止 : /opt/nginx/sbin/nginx -s stop
6.開機(jī)啟動(dòng) 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.問題
啟動(dòng) nginx遇到的問題
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 這個(gè)名稱可變)
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é)果如下:
其中 weight是權(quán)重 backup是備用服務(wù)器 ,只有其它服務(wù)器宕機(jī)后,備用服務(wù)器才會(huì)啟動(dòng)。
三、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ī)啟動(dòng)
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 #這個(gè)配置要唯一 } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" ## 檢測(cè) nginx 狀態(tài)的腳本路徑 interval 2 ## 檢測(cè)時(shí)間間隔 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)先級(jí) 數(shù)字越大 優(yōu)先級(jí)越高 priority 的值 主服務(wù)器要大于 從服務(wù)器 advert_int 1 #設(shè)定MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒 authentication { # 主從通信 驗(yàn)證類型及密碼 auth_type PASS #設(shè)置vrrp驗(yàn)證類型,主要有PASS和AH兩種 auth_pass 1111 #設(shè)置vrrp驗(yàn)證密碼,在同一個(gè)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 虛擬地址 如果有多個(gè)VIP,繼續(xù)換行填寫 } }
6.編寫 Nginx 狀態(tài)檢測(cè)腳本
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 命令
啟動(dòng) : servicekeepalived start
停止: servicekeepalived stop
重啟: servicekeepalived restart
9.注意的問題
a.vip沒綁定成功
解決方案:ip addr 查看 本地ip所在網(wǎng)卡的名稱 ,然后修改 配置文件
vi /etc/keepalived/keepalived.conf
保存后 servicekeepalived restart 重啟 keepalived服務(wù)即可
10.測(cè)試
啟動(dòng)主從nginx和keepalived 服務(wù)
主從服務(wù)器分別: ip add | grep 192.168.38.100
在192.168.38.64 可看到
同時(shí) 在192.168.38.66
當(dāng)殺死 主服務(wù)器上的keepalived 則 從服務(wù)器
當(dāng)再次啟動(dòng)主服務(wù)器上的keepalived則結(jié)果主服務(wù)器上有結(jié)果,從服務(wù)器上沒結(jié)果。
當(dāng)殺死 nginx后,keepalived則會(huì)自動(dòng)啟動(dòng) nginx服務(wù)
11. keepalived腦裂 (ip add | grep 192.168.38.100 在主從都有結(jié)果)
解決方案:防火墻問題
iptables-IINPUT4-pvrrp-jACCEPT service iptables save service iptables restart
以上是“nginx+keepalived如何實(shí)現(xiàn)高可用主從配置”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。