仕事で、私たちは、異なるサーバは、我々はnginxのとaoache処理、動的な文書を使用するなどの静的ファイルなど、さまざまなものを、処理したいことがあり、我々は我々がイカに対処する必要がありますする必要は、画像ファイルを処理するためのApache Tomcatを願っています。したがって、この場合には、我々は静的および動的な負荷分散の分離を達成するためにnginxのを使用することができます
nginxのの上流のモジュールがロード・バランシング・モードは5つの方法ですサポートしています。
1)、ポーリング(デフォルト)
個々に異なる時間順バックエンドサーバーに割り当てられた各要求は、バックエンドサーバがあれば停止して、自動的に除去することができます。
2)、重量
ポーリング確率凹凸バックエンドサーバのパフォーマンス場合の重量比は、アクセスに比例します。
3)、ip_hash
各要求へのアクセス各訪問者は、固定のバックエンドサーバーにアクセスするように、ハッシュ結果のIPを割り当てるには、セッションの問題を解決することができます。
4)、フェア(サードパーティ)
バックエンドサーバ、短い応答時間優先割り当てに割り当て要求の応答時間によって。
5)、url_hash(第三者)URLタラハシー
アクセスがより効果的な結果時にバックエンドサーバのキャッシュに同じバックエンドサーバーに送ら同じURLにハッシュURLの割り当て要求
静的および動的負荷分散とnginxの分離の使用例、
3つのホスト、1(実際の作業環境でのサーバがより多くの異なる機能を追加することができます)ディスパッチャとしてnginxので、バックエンドのWebサーバなど、他の2を準備します
ソースは、nginxのをコンパイルしてインストールします
1は、ビルドツールとその依存関係のインストールに関連します
[ルート@ LVS2〜]#yumを-y GCCのgcc-C ++をインストールしたautoconfのautomakeに
[LVS2〜@ルート]#yumを-yのzlibはzlib-develののopensslのopenssl-develのPCREのPCRE-develのインストール
ZLIB:nginxのはgzipモジュールを提供のzlibライブラリのサポートが必要です
OpenSSLを:nginxのは、SSL機能を提供
PCREを:アドレスのサポートが書き換え機能を書き換えます
[ルート@ LVS2のソース]#タール-zxvfのnginx-1.16.1.tar.gz
[ルート@のLVS2のソース]#のCDのnginxの-1.16.1
[ルート@のLVS2のnginxの-1.16.1]#は./configure --prefix =は/ usr / local / nginxの--with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module - -with-http_mp4_module
パラメータ:
http_dav_module---with ngx_http_dav_moduleサポート有効(増加のPUT、DELETE、MKCOLを:コレクション、COPYとMOVEメソッドを作成する)デフォルトでオフになって、あなたが開いてコンパイルする必要があります
--with-http_stub_status_module有効ngx_http_stub_status_moduleサポートは、(最後のスタート以来、nginxのため、作業条件を得ます)
http_addition_module---with(出力フィルタと、バッファが完全にサポートされていない、部分にリクエストを応答)ngx_http_addition_moduleサポートを可能に
--with-http_sub_module ngx_http_sub_moduleサポートを有効にして(テキストはいくつかの他のテキストnginxの応答を交換することができます)
--with-http_flv_module有効ngx_http_flv_moduleサポート(メモリベースのファイルオフセット時間を提供しようとしています)
--with-http_mp4_module 有効に MP4ファイルのサポート(メモリベースのファイルオフセット時間を提供しようとしています)
[ルート@ LVS2のnginxの-1.16.1]#make installを&&作ります
[ルート@ LVS2のnginx-1.16.1]#useraddの-s / sbinに/ nologinにnaginx
nginxのメインのディレクトリ構造:
/server/nginx-1.16.1/ [ルート@ LVS2 /]#lsが
confにHTMLのログsbinに
confに#プロファイル
htmlの#のWebサイトのルート
ログログ#
sbinに#nginx起動スクリプト
メインの設定ファイル:
[ルート@ LVS2 /]#LSを/server/nginx-1.16.1/conf/nginx.conf
開始 nginxの:
[ルート@ LVS2 /]#/server/nginx-1.16.1/sbin/nginx
[ルート@ LVS2 /]#netstatの-antup | グレップ:80
TCP 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5281 / httpdの
[ルート@ LVS2 /]#netstatの-antup | グレップ:80
ブーツ:
[ルート@ LVS2のnginx-1.16.1]#エコー '/server/nginx-1.16.1/sbin/nginx&' >> /etc/rc.localの
nginxのサービス日常業務:
設定ファイルの構文をテストします。
[xuegod63 nginxの-1.8.0 @ルート]#/server/nginx-1.8.0/sbin/nginx -t
nginxの:構文/server/nginx-1.8.0/conf/nginx.conf設定ファイルはokです
nginxの:設定ファイル/server/nginx-1.8.0/conf/nginx.confテストは成功です
設定ファイルをリロード
[xuegod63 nginxの-1.8.0 @ルート]#/server/nginx-1.8.0/sbin/nginx -sリロード
閉じる nginxの
[ルート@ xuegod63 /]#/server/nginx-1.8.0/sbin/nginx -s停止
[ルート@のxuegod63 /]#/server/nginx-1.8.0/sbin/nginx -s起動しない#パラメータを開始
nginxの:無効なオプション: "-s開始"
設定 nginxのは、静的および動的な分離を達成するために、代理店になります
[ルート@ xuegod63 confに]#プロファイルディレクトリ/server/nginx-1.8.0/confます。#cd
設定ファイルのnginx.conf.back#バックアップnginx.conf [ルート@ xuegod63 confに]#cpは
[ルート@ xuegod63 confに]#のVimのnginx.conf
開始を指定する#のnginxのユーザ/server/nginx-1.8.0/conf/nginx.conf#のvimの[xuegod63のnginx-1.8.0 @ルート]
改:#ユーザーの誰もいません。
为:ユーザーnginxののnginxの。
変更します。
43位置/ {
44ルートHTML。
45インデックスのindex.html index.htmを、位置/ {位。。。}次の#define配布ポリシーを追加します。
位置/ {
ルートHTML;
インデックスのindex.html index.htmを。
もし($ REQUEST_URI〜* \ .htmlを$){
proxy_passます。http:// htmlservers。
}
もし($のREQUEST_URI〜* \ .PHPの$){
proxy_passます。http:// phpservers。
}
proxy_passます。http:// picservers。
}
図:
それ以外の場合は、以下の情報をコメントアウトしていないバックエンドのためにサーバを解決もはや、サーバー上で直接のnginxのPHPファイルの解析:
#場所〜\ phpの$ {
73#ルートのhtml;
74#のfastcgi_pass 127.0.0.1:9000。
75#のfastcgi_indexのindex.phpを。
76#fastcgi_paramのSCRIPT_FILENAMEの/server/nginx-1.8.0/html$fastcgi_script_name。
77位fastcgi_paramsを含みます。
78#}
図:
#定義の負荷分散装置のIp
#定義の負荷分散装置のIp
設定ファイルnginx.confでは最後の行の前に}、次の行を追加します。
上流htmlservers {#グループ名サーバ負荷分散定義
サーバ192.168.204.142:80と、
サーバ192.168.204.143:80;
}
上流phpservers {
サーバー192.168.204.142:80、
サーバ192.168.204.143:80;
}
上流picservers {
サーバー192.168.204.142 :80;
サーバ192.168.204.143:80;
}
#後期の作品では、特定のビジネスにIPアドレスを設定するために必要な作業に応じて
図:
保存して終了。
リロード nginxのサーバーの設定ファイルを:
[ルート@のxuegod63 confに]#/server/nginx-1.8.0/sbin/nginx -t
nginxの:構文/server/nginx-1.8.0/conf/nginx.conf設定ファイルはokです
nginxの:設定ファイル/server/nginx-1.8.0/conf/nginx.confテストは成功です
[ルート@ xuegod63 confに]#/server/nginx-1.8.0/sbin/nginx -sリロード
バックエンドサーバの定義はweb1
[ルートの@ RS-WEB1〜]#yumのPHPのhttpdをインストール-y
[ルートの@ RS-WEB1〜]#エコー192.168.204.142> /var/www/html/index.html
[ルートの@ RS-WEB1〜]#のVimの/var/www/html/test.php
192.168.204.142-PHP
<PHPの?
するphpinfo();
?>
バックエンドサーバーWEB2を定義します
[ルートの@ RS-WEB2〜]#yumのPHPのhttpdをインストール-y
[ルートの@ RS-WEB2〜]#エコー192.168.204.143> /var/www/html/index.html
[ルートの@ RS-WEB2〜]#のVimの/var/www/html/test.php
192.168.204.143-PHP
<PHPの?
するphpinfo();
?>
負荷が成功のバランスをとるかどうかを確認するクライアントアクセス192.168.204.141はその後、環境を生成することは、サービスの異なる定義によって異なることを行うことができます
テストのパフォーマンス:
拡張: あまりにも開いているファイルの数
[ルート@テストのhtml]#AB -n 1000年-c 1000年http://192.168.1.62/index.html#通常動作
[ルート@テストのhtml]#abが-n 2000 -c 2000 http://192.168.1.62/index.html#エラー
これはApacheBench、バージョン2.3である<$リビジョン:655654 $>
著作権1996アダムTwiss、ゼウス・テクノロジー株式会社、http://www.zeustech.net/
Apache Software Foundationの、http://www.apache.org/にライセンス供与
ベンチマーク192.168.1.62(我慢して)
ソケット:開いているファイル(24)#テスト、一度あまりにも多くのオープンソケットファイルが多すぎ。
#表示-a #ulimit
#ulimit -n
1024
デフォルトのために開くためのプロセス可能にしながら、 1024ファイルを
ソリューション:
#ulimit 10240#エラーソリューション-n
ポリシーの設定方法nginxの負荷の5種類:
1、ポーリング(デフォルト)
個々に異なる時間順バックエンドサーバーに割り当てられた各要求は、バックエンドサーバがあれば停止して、自動的に除去することができます。
上流backserver {
サーバー192.168.1.62;
サーバー192.168.1.64;
}
図2に示すように、重みを指定します
ポーリング確率凹凸バックエンドサーバのパフォーマンス場合の重量比は、アクセスに比例します。
上流backserver {
サーバ192.168.1.62の重量= 1。
サーバ192.168.1.64重量= 2。
}
3、IPバインドip_hash
各要求へのアクセス各訪問者は、固定のバックエンドサーバーにアクセスするように、ハッシュ結果のIPを割り当てるには、セッションの問題を解決することができます。
上流backserver {
ip_hash;
サーバー192.168.1.62:80;
サーバー192.168.1.64:80;
}
4、フェア(サードパーティ)
バックエンドサーバ、短い応答時間優先割り当てに割り当て要求の応答時間によって。
上流backserver {
サーバーSERVER1。
サーバーSERVER2。
フェア;
}
5、url_hash(サードパーティ)
アクセス割り当て要求のURLにハッシュ結果は、同じバックエンドサーバに向けた各URLは、バックエンドサーバは、ときにキャッシュ効果的です。
上流backserver {
サーバーsquid1:3128;
サーバーsquid2:3128;
$ REQUEST_URIハッシュ。
hash_method CRC32;
}
要約、拡張:
場合は、次のようにTomcatは、Apache、イカに構成:
#最後に以下を追加しnginx.conf [ルート@ xuegod63 confに]#のvimの。サーバグループを定義します
上流tomcat_servers {
サーバー192.168.1.2:8080。
サーバー192.168.1.1:8080。
サーバー192.168.1.11:8080;
}
上流apache_servers {
サーバー192.168.1.5:80;
サーバー192.168.1.177:80;
サーバー192.168.1.15:80;
}
上流squid_servers {
サーバー192.168.1.26:3128;
サーバー192.168.1.55:3128;
サーバー192.168.1.18:3128;
}