溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2022-04-27 14:02:30 來源:億速云 閱讀:201 作者:iii 欄目:大數據

這篇“nginx+keepalived高可用主從配置的方法”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“nginx+keepalived高可用主從配置的方法”文章吧。

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

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

服務器:192.168.38.64

從服務器:192.168.38.66

vip :192.168.38.100

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

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

復制代碼 代碼如下:

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 出現如下界面說明配置沒問題

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

啟動 : /opt/nginx/sbin/nginx

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

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

6.開機啟動 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的負載均衡

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

修改 nginx的配置文件

vi /data/nginx/conf/nginx.conf

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

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

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

結果如下:

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

其中 weight是權重 backup是備用服務器 ,只有其它服務器宕機后,備用服務器才會啟動。

三、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服務

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.設置 keepalived 服務開機啟動

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 ## 如果條件成立,權重-20
  } 

  vrrp_instance vi_1 { #實例 vi_1 名字可以隨意 但是不建議修改
    state master # 主服務器master 從服務器 backup
    interface em1 # em1 網卡
    virtual_router_id 51 #virtual_router_id 主備要一致
    priority 100   # 優(yōu)先級 數字越大 優(yōu)先級越高 priority 的值 主服務器要大于 從服務器
    advert_int 1  #設定master與backup負載均衡器之間同步檢查的時間間隔,單位是秒
    authentication { # 主從通信 驗證類型及密碼 
      auth_type pass  #設置vrrp驗證類型,主要有pass和ah兩種
      auth_pass 1111  #設置vrrp驗證密碼,在同一個vrrp_instance下,master與backup必須使用相同的密碼才能正常通信
    } 

    ## 將 track_script 塊加入 instance 配置塊
    track_script {
      chk_nginx ## 執(zhí)行 nginx 監(jiān)控的服務
    }

    virtual_ipaddress {
    192.168.38.100/24 #vrrp ha 虛擬地址 如果有多個vip,繼續(xù)換行填寫
    }
  } 

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

vi /etc/keepalived/nginx_check.sh

內容如下:

  #!/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í)行權限:chmod +x/etc/keepalived/nginx_check.sh

7.注意點:keepalived主從配置文件不同點

  a.router_id 不一致

  b.state 主服務器是master ,從服務器是 backup

  c.priority 主服務器 大于 從服務器

8.keepalived 命令

  啟動 : servicekeepalived start

  停止: servicekeepalived stop

  重啟: servicekeepalived restart

9.注意的問題

a.vip沒綁定成功

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

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

vi /etc/keepalived/keepalived.conf

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

保存后 servicekeepalived restart 重啟 keepalived服務即可

10.測試

啟動主從nginx和keepalived 服務

主從服務器分別: ip add | grep 192.168.38.100

在192.168.38.64 可看到

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

同時 在192.168.38.66

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

當殺死 主服務器上的keepalived 則 從服務器

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

當再次啟動主服務器上的keepalived則結果主服務器上有結果,從服務器上沒結果。

當殺死 nginx后,keepalived則會自動啟動 nginx服務

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

解決方案:防火墻問題

iptables-iinput4-pvrrp-jaccept  

service iptables save

service iptables restart

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

以上就是關于“nginx+keepalived高可用主從配置的方法”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI