nginxの負荷分散と高可用性展開のプロキシ設定

nginxの負荷の高可用性構成のバランスをとります

サーバーA:172.16.100.2
サーバB:172.16.100.3


まず、第1およびkeepalivedのnginxの後に二つのサーバにインストールして、次の操作を実行しています

設定keepalivedの可用性(プリエンプション)
サーバA:172.16.100.2
サーバB:172.16.100.3
VIP:172.16.100.14

次の操作が継続した後、まず、サーバAとサーバBは、それぞれインストール、keepalivedの設置されています。

サーバーA上で実行

1.スクリプトnginxの状態監視

!エコー「#/ binに/ bashのの
数= `PSの補助| grep -v grepの| グレップのnginxの| トイレ-l`
[$回数> 0]であれば、次に
出0
他の
1番出口
Fiの」> /etc/keepalived/checknginx.sh

グローバルに定義されたブロックの設定

global_defs {
      ROUTER_ID nginxserver01
}

3.keepalivedは、ネットワーク障害のモニタリングを行うと、自身の構成スクリプトMySQLサービスの状態監視をkeepalivedのことができます

重量優先詳細に効果、https://www.cnblogs.com/arjenlee/p/9258188.html参照
vrrp_script checkmysql
{
      スクリプト「/etc/keepalived/checknginx.sh」
      間隔を3
      重量-20
}

ブロックVRRPを定義する4.構成例

vrrp_instanceのインスタンス1 {
      状態マスタは
      1つのvirtual_router_id
      インターフェースeth0
      mcast_src_ip 172.16.100.2
      優先順位100
      advert_int 3
      nopreempt
      認証{
          AUTH_TYPEのPASS
          auth_passのkee1234
      }
      virtual_ipaddress {
      172.16.100.14
      }
      track_script {
      checknginxを
      }
}

サーバーB上で実行

1.スクリプトnginxの状態監視

!エコー「#/ binに/ bashのの
数= `PSの補助| grep -v grepの| グレップのnginxの| トイレ-l`
[$回数> 0]であれば、次に
出0
他の
1番出口
Fiの」> /etc/keepalived/checknginx.sh

グローバルに定義されたブロックの設定

global_defs {
      ROUTER_ID nginxserver02
}

3.keepalivedは、ネットワーク障害のモニタリングを行うと、自身の構成スクリプトMySQLサービスの状態監視をkeepalivedのことができます

重量優先詳細に効果、https://www.cnblogs.com/arjenlee/p/9258188.html参照
vrrp_script checknginx
{
      スクリプト「/etc/keepalived/checknginx.sh」
      間隔を3
      重量-20
}

ブロックVRRPを定義する4.構成例

vrrp_instanceのインスタンス1 {
      状態BACKUP
      virtual_router_id 1つの
      インターフェースeth0の
      mcast_src_ip 172.16.100.3
      優先90
      advert_int 3
      nopreempt
      認証{
          AUTH_TYPEのPASS
          auth_passのkee1234
      }
      virtual_ipaddress {
      172.16.100.14
      }
      track_script {
      checknginx
      }
}


nginxのHTTPプロキシ設定(セッションが開いたまま、安全な構成)

猫<< EOF> /usr/local/myapps/nginx/http8888.conf
上流http8888 {
     スティッキー。
     サーバー172.16.100.2:8080;
}
サーバー{
     8888を聞きます。
     文字セットUTF-8;
     180をproxy_connect_timeout。
     180をproxy_send_timeout。
     180をproxy_read_timeout。   
     オフproxy_buffering;
     proxy_set_headerホスト$ホスト:$ SERVER_PORT。
     proxy_set_header X-のReal-IPの$ REMOTE_ADDR;
     proxy_set_headerのX-転送さ-について$ proxy_add_x_forwarded_for。
     位置/ {
         proxy_pass  のhttp:// http8888。
     }
     access_logのログ/ http8888.access.logアクセス。
}


セッション遺跡


1.ソースアドレスハッシュアルゴリズム


命令:IPハッシュ;
不十分:
バックエンドサーバーがダウンした場合、セッションは失われます。
同じLANからのクライアントは、同じバックエンドサーバに転送される負荷の不均衡につながることができ、
CDNネットワークには適用されません、前のには適用されません。状況エージェントがあります。

2.cookieセッションが残ります


利点:
同じLANクライアントの負荷分散を達成することができ
、粘着性:ディレクティブ
のような演技など粘着性のバッファ時間として粘着性のいくつかのパラメータを、。ここでは詳細には粘着性の袋を解凍し、READMEを確認することができ
、粘着性のモジュールを維持するために、セッションクッキーを有効にするために追加する必要があります。
(新しいモジュールを追加するには:nginxの、nginxのバックアップを停止し、ベルトのパラメータと新しいモジュールnginxのカバーsbinディレクトリのnginxのを含むコンパイルされたバイナリファイルを再コンパイルする新しいモジュールパラメータをコンパイルする前に、nginxのは、再起動することができます)
wgetのhttps://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
タールzxf master.tar.gzの
ミュージックビデオ-グッズ- nginxのnginxの-スティッキーModule1の-NG-08a395c66e42スティッキーModule1の-nginxの
はgrep nginxの| | -ef PSはgrep -v grepの| awkの印刷$ {2} '| xargsのキルを-9
CP -Arは/ usr / local / MyApps / nginxのは/ usr / local / MyApps / nginx_bak`date "Y +%M%のDの%" `
CD /root/nginx-1.15.9
nginxの-V
./configure --prefix =は/ usr / local / myapps / nginxの--sbinパス=は/ usr / sbinに/ nginxの--pidパス=は/ usr / local / myapps / nginxの/ログ/ nginx.pid --error -logパス=は/ usr / local / myapps / nginxの/ログ/ error.logに--httpログパス=は/ usr / local / myapps / nginxの/ログ/ access.logを--with-PCRE =は/ usr / --with-http_stub_status_module --with-ZLIB =は/ usr / local / myapps / ZLIB-1.2.11ローカル/ myapps / PCRE-8.43 --withストリーム--addモジュール= /ルート/ nginxの粘着性モジュール
/ USR / binに/ CP /root/nginx-1.15.9/objs/nginxは/ usr / sbinに/
nginxの-c /usr/local/myapps/nginx/conf/nginx.conf

おすすめ

転載: www.cnblogs.com/jipinglong/p/11230215.html