ホームページ  >  記事  >  運用・保守  >  nginx+keepalived高可用性マスター/スレーブ構成方法

nginx+keepalived高可用性マスター/スレーブ構成方法

王林
王林転載
2023-05-29 14:16:061550ブラウズ

1. システム環境とソフトウェアのバージョン

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

2. nginx のインストール (マスター-スレーブのインストールは一貫しています)

1. 依存環境をインストールします

コードをコピーしますコードは次のとおりです:

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 リスニング ポートと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 次のインターフェースが表示され、構成が OK であることが示されます。

nginx+keepalived高可用性マスター/スレーブ構成方法開始: /opt/nginx/sbin /nginx

再起動: /opt/nginx/sbin/nginx -s reload

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

6 nginx

vi /etc/rc.local

Join: /opt/nginx/sbin/nginx

7 を開始し、ファイアウォールを開いて変更します。 port

vi /etc/sysconfig/iptables

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

ファイアウォールを再起動します:

service iptables restart

8. 問題

nginx

# の起動時に問題が発生しました

#vi / etc/ld.so.confnginx+keepalived高可用性マスター/スレーブ構成方法

追加: /opt/nginx/lib/

9.nginx 負荷分散

nginx ロード バランシング 主にアップストリーム モジュールによって行われます

nginx 構成ファイルを変更します

vi /data/nginx/conf/nginx.conf

以下を追加しますcontent: (web_pools 変数の名前)

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

サーバー ノードの下の location ノードで proxy_pass を次のように構成します: http://上流名

結果は次のようになります:

ここで、weight は重み、backup はバックアップ サーバーです。バックアップ サーバーは、他のサーバーがダウンした後にのみ起動します。 nginx+keepalived高可用性マスター/スレーブ構成方法

3. 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 状态的脚本路径
    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   # 优先级 数字越大 优先级越高 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 ## 执行 nginx 监控的服务
    }

    virtual_ipaddress {
    192.168.38.100/24 #vrrp ha 虚拟地址 如果有多个vip,继续换行填写
    }
  } 

6. nginx 状態検出スクリプトを書く

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

保存後、スクリプトに実行権限を付与します:

chmod x/etc/keepalived/nginx_check.sh

7. 注: keepalived マスターとの違いおよびスレーブ設定ファイル

a.router_id が矛盾しています

b.state メイン サーバーがマスターで、スレーブ サーバーがバックアップです

c.priority マスター サーバーが次より大きいですスレーブサーバー

8.keepalivedコマンド

開始:servicekeepalived start

停止:servicekeepalived stop

再起動:servicekeepalived restart

9注意すべき問題

a.vip は正常にバインドされませんでした

解決策: ip addr ローカル IP が配置されているネットワーク カードの名前を確認し、構成ファイルを変更します

##vi /etc/keepalived/keepalived.conf

nginx+keepalived高可用性マスター/スレーブ構成方法

保存後、servicekeepalived restart により keepalived サービスを再起動できます

nginx+keepalived高可用性マスター/スレーブ構成方法10. テスト

マスター/スレーブの nginx サービスと keepalived サービスを開始します

マスターサーバーからそれぞれ: ip add | grep 192.168.38.100

は 192.168 で確認できます。 38.64

## と 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高可用性マスター/スレーブ構成方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。