Webサーバー分散サービス:nginxの負荷分散

  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.00.19000 
            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.00.19000 
             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.00.19000 
             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.2228.237重量=を5。 
   サーバー172.2228.235重量= 5。; 
   サーバ172.2228.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等均可以。

おすすめ

転載: www.cnblogs.com/tonyjude/p/11696591.html