nginxのは、軽量なWebサーバ/リバースプロキシサーバと電子メール(IMAP / POP3)プロキシサーバーです。大規模なWebポータルや検索エンジンのランブラーの使用のためにロシアのデザイナーイガー・シソエブ、ロシアが開発したプログラム。これは、少ないメモリ、高い並列性を占めています。
nginxのは非常に強力な、高性能なWebサーバーとリバースプロキシで、それが高いの同時接続で非常に優れた特性をたくさん持っている、nginxのは、Apacheサーバへの良い代替され、米国ではnginxのバーチャルホストは、ビジネスの所有者をしています一つは、多くの場合、ソフトウェアプラットフォームを選択してください。応答では50,000の同時接続をサポートします。
彼らはLNMPAアーキテクチャを構成するように、いくつかの大規模プロジェクトでは、nginxのは、多くの場合、負荷分散として使用され、一定のルールに従って、nginxのWebサーバーの要求は、分散に配布し、これは、プロジェクトのWeb Serverのパフォーマンスのボトルネックの問題を解決するだろうそのLinuxの+ nginxの+ MySQLの+ PHP + Apacheは、 LVSも同じ機能を持っていますが、F5のハードウェアがベストですが、価格は非常に高価であり、長所と短所があり、
nginxのも静的なページ、ファイルのアップロードやダウンロードを処理するために非常に適していますサーバーは、これらの事業では、他のサーバソフトウェアは、誰にも負けないで、
実際には、PHPビジネス・ロジックの処理にWebサーバーを行うには、直接Webサーバとしてnginxのをnginxのを使用するための多くのプロジェクトがあるだけでnginxのができない場合は、非常に強力アパッチすることはできませんプロジェクトのニーズを満たすために、それは、nginxのは、静的なページを処理し、負荷分散を行うには、ビジネスから分離され、アパッチへのファイルのアップロードとダウンロード、PHPビジネス・ロジックを担当しています。
リバースプロキシと負荷分散の設定:
ウェブサーバ1:172.22.28.237:80
ウェブサーバー2:172.22.28.235:80
ウェブサーバ3:172.22.28.234:80
ドメイン名:test.box.com
nginxのサーバー:47.252.83.223:80
1.Nginx設定
ユーザWWW;#ユーザ操作 worker_processes 1。;#ワークプロセスの数、CPUコアの好ましい数 イベント{ worker_connections 1024 ; } HTTP { のmime.typesを含む; default_typeファイルアプリケーション / OCTET -解釈されないストリームを、 文字セットUTFを - 。8 ; のsendfile ON; keepalive_timeout 65 ; サーバー{ 聞く 80 ; 80#リスニング・ポート SERVER_NAME test1.box.comを、 ルート / SRV /ボックス/ サイト1; #webディレクトリ LOCATION / { インデックスのindex.phpのindex.html index.htmを。 } 場所〜\ .phpの$ { fastcgi_pass 127.0。0.1:9000 。 fastcgi_indexのindex.phpを。 fastcgi_param SCRIPT_FILENAME $ DOCUMENT_ROOT $ fastcgi_script_name。 fastcgi_paramsが含まれます。 } } サーバー{ 聞く 80 。 SERVER_NAME test2.box.com ルート / SRV /ボックス/ SITE2。#web目录 位置 / { インデックスのindex.phpのindex.htmlのindex.htm。 } 場所〜\ .phpの$ { fastcgi_pass 127.0。0.1:9000 。 fastcgi_indexのindex.phpを。 fastcgi_param SCRIPT_FILENAME $ DOCUMENT_ROOT $ fastcgi_script_name。 fastcgi_paramsが含まれます。 } } サーバー{ 聞く 80 。 SERVER_NAME test3.box.com ルート / SRV /ボックス/ site3; #web目录 位置 / { インデックスのindex.phpのindex.htmlのindex.htm。 } 場所〜\ phpの$ { fastcgi_pass 127.0。0.1:9000 。 fastcgi_indexのindex.phpを。 fastcgi_param SCRIPT_FILENAME $ DOCUMENT_ROOT $ fastcgi_script_name。 fastcgi_paramsが含まれます。 } } }
2.次のように、各ディレクトリは、index.phpファイルを作成しているSITE1とSITE2ディレクトリがあるウェブでディレクトリを作成し、PHPのコードは次のとおりです。
SITE1 <?PHP エコーjson_encode([ 'タイプ' => '200'、 'データ' => 'テスト'])。 ?> SITE2 <?PHP エコーjson_encode([ 'タイプ' => '200'、 'データ' => 'TEST2'])。 ?> site3 <?PHP エコーjson_encode([ 'タイプ' => '200'、 'データ' => 'TEST3'])。 ?>
:WWWのWWWユーザグループに2つのディレクトリのパーミッション
のchown -R&LT WWW:WWWサイト1 /
のchown -R&LT WWW:WWWサイト2 /
のchown -R&LT WWW:WWW site3 /
3 nginxのリバースプロキシサーバーとロードバランシング設定: '
#ロード構成、再配布方法に右バランス 上流test.box.com { サーバー172.22。28.237重量=を5。 、 サーバー172.22。28.235重量= 5。; サーバ172.22。28.234重量= 5 ; } #リバースプロキシ構成 サーバー{ 聴く 80 ; SERVER_NAME test.box.com、 文字セットUTF - 8。; LOCATION / { proxy_pass HTTP:// test.box.com; } }
4、サービスのサービスnginxの再起動nginxのを再起動します
5、ブラウザアクセスtest.box.com、マルチアクセス時間、私たちが見ることができるように、重量表示異なる内容に応じて置換されます。
これまでのところ、nginxのロード・バランシング、リバースプロキシが設定されています。
負荷分散を配布するnginxの道4があります。
駅のWebサーバーのダウンタイム、nginxのは自動的に削除する場合1.世論調査では、デフォルトではこの方法をとる、nginxのは、時間順にポーリング要求を配布します。
2.weight、体重、ポーリングすなわち確率、大きな値、凹凸のバックエンドサーバのパフォーマンスの場合について、分散される可能性も大きいです。
3.ip_hash、各訪問者は、固定のバックエンドサーバーにアクセスするように、ハッシュ結果のアクセスIPによって割り当てられた各要求は、共有セッションの問題を解決することができます。
4.カスタムルール
例:
上流test.box.com {
172.22.28.237ダウンサーバと、
サーバ172.22.28.235重量= 2;
サーバー172.22.28.236、
サーバ172.22.28.234バックアップ;
}
詳細な構成:
ダウン現在のWebサーバーが一時的に負荷に参加されていないことを示し
、デフォルトは重量の負荷も大きく、大きい1.weightによって重量。
バックアップ:ダウンまたはビジー状態の他のすべての非バックアップサーバーは、バックアップ・マシンを要求します。だから、このマシンは軽い圧力になります。
また、最も一般的なアプリケーションの重要な利点の1つですnginxのホットスタンバイ機能を使用して、バックアップ以外のバックアップサーバは良いサービスを提供することができ、クライアントのために、バックアップサーバ、バックアップサーバで、世界の外に今回のサービスを提供していないとき、もたらします低温状態;ホットバックアップ、またはすべての非バックアップWebサーバーのダウンタイムの表は、Webプロジェクト全体のアクセスに影響を与えないように、すべての非バックアップサーバは、サービスの提供のためのサービス、バックアップサーバークライアントを提供するために、クライアントのために良いことはできません、Webプロジェクトは、まだクライアントにサービスを提供することができます。
Nginx做负载均衡,对Web Server的操作系统和语言环境没有特殊要求,Web Server的操作系统可以是Linux也可以是Windows Server,Web程序是Java、PHP、.Net等均可以。