NodeJS アプリケーションの負荷分散に Nginx を使用する

WBOY
リリース: 2016-08-08 09:30:31
オリジナル
845 人が閲覧しました

「NodeJS アプリケーションの負荷分散に Nginx を使用する」

著者: chszs 転載の際は明記をお願いします。ブログのホームページ: http://blog.csdn.net/chszs

負荷分散により、ユーザーのリクエストを複数のサーバーに割り当てて処理できるため、多数のユーザーのアクセスのサポートが実現します。負荷分散アーキテクチャを次の図に示します。


複雑な Web アプリケーションの場合、フロントエンドの負荷分散に Nginx を使用するのは当然のことです。

次に、Nginx を使用して NodeJS アプリケーションの負荷分散を行います。

1. Nginx を構成する

nginx.conf を変更します:

....
        upstream sample {
	      server 127.0.0.1:3000;
	      server 127.0.0.1:3001;
	      keepalive 64;
	    }
         server {
	        listen 80;
	        ....
            server_name 127.0.0.1;
	        ....
            location / {
               proxy_redirect off;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-Forwarded-Proto $scheme;
               proxy_set_header Host $http_host;
               proxy_set_header X-NginX-Proxy true;
               proxy_set_header Connection "";
               proxy_http_version 1.1;
               proxy_pass http://sample;
           }
        }
ログイン後にコピー
ポート 3000 とポート 3001 に Node.js サーバーがあります。これら 2 つのサーバーは同じジョブを実行します。上流セクションでは、2 つの Node.js サーバーが構成されています。さらに、HTTP リクエスト プロキシとして proxy_pass http://sample も設定します。

2. NodeJS サーバーを構築します

var http = require('http');
var morgan       = require('morgan');

var server1 = http.createServer(function (req, res) {
  console.log("Request for:  " + req.url + "-- port 3000 ");
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Node.js\n');
}).listen(3000, "127.0.0.1");

var server2 = http.createServer(function (req, res) {
  console.log("Request for:  " + req.url + "-- port 3001 ");
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Node.js\n');
}).listen(3001, "127.0.0.1");

server1.once('listening', function() {
  console.log('Server running at http://127.0.0.1:3000/');
});

server2.once('listening', function() {
  console.log('Server running at http://127.0.0.1:3001/');
});
ログイン後にコピー
3. Nginx サーバーにアクセスします

これで、http://127.0.0.1 にアクセスできるようになります


  Server running at http://127.0.0.1:3000/
  Server running at http://127.0.0.1:3001/
  Request for:  /-- port 3001 
  Request for:  /favicon.ico-- port 3000 
  Request for:  /favicon.ico-- port 3001 
  Request for:  /-- port 3000 
  Request for:  /favicon.ico-- port 3001 
  Request for:  /favicon.ico-- port 3000 
  Request for:  /-- port 3001 
  Request for:  /favicon.ico-- port 3000 
  Request for:  /favicon.ico-- port 3001 
  Request for:  /-- port 3000 
  Request for:  /favicon.ico-- port 3001 
  Request for:  /favicon.ico-- port 3000 
ログイン後にコピー


上記では、関連する側面も含めて、NodeJS アプリケーションの負荷分散のための Nginx の使用法を紹介しました。PHP チュートリアルに興味のある友人にとって役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!