ホームページ バックエンド開発 PHPチュートリアル NodeJS アプリケーションの負荷分散に Nginx を使用する

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

Aug 08, 2016 am 09:30 AM
http port proxy quot request

「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 チュートリアルに興味のある友人にとって役立つことを願っています。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

http ステータス コード 520 は何を意味しますか? http ステータス コード 520 は何を意味しますか? Oct 13, 2023 pm 03:11 PM

http ステータス コード 520 は何を意味しますか?

Nginx Proxy Manager でのコンテナとマイクロサービスのデプロイ戦略 Nginx Proxy Manager でのコンテナとマイクロサービスのデプロイ戦略 Sep 27, 2023 pm 01:06 PM

Nginx Proxy Manager でのコンテナとマイクロサービスのデプロイ戦略

Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する Feb 18, 2024 pm 08:41 PM

Web ページのリダイレクトの一般的なアプリケーション シナリオを理解し、HTTP 301 ステータス コードを理解する

Nginx プロキシ マネージャー チュートリアル: クイック スタート ガイド Nginx プロキシ マネージャー チュートリアル: クイック スタート ガイド Sep 27, 2023 pm 05:39 PM

Nginx プロキシ マネージャー チュートリアル: クイック スタート ガイド

Nginx Proxy Managerを使用して複数のサーバーの負荷分散を実現する方法 Nginx Proxy Managerを使用して複数のサーバーの負荷分散を実現する方法 Sep 27, 2023 pm 09:42 PM

Nginx Proxy Managerを使用して複数のサーバーの負荷分散を実現する方法

PHP の Request オブジェクトとは何ですか? PHP の Request オブジェクトとは何ですか? Feb 27, 2024 pm 09:06 PM

PHP の Request オブジェクトとは何ですか?

Nginx プロキシ マネージャーを使用して HTML ページをすばやくキャッシュする方法 Nginx プロキシ マネージャーを使用して HTML ページをすばやくキャッシュする方法 Sep 28, 2023 am 10:58 AM

Nginx プロキシ マネージャーを使用して HTML ページをすばやくキャッシュする方法

httpステータスコード403とは何ですか? httpステータスコード403とは何ですか? Oct 07, 2023 pm 02:04 PM

httpステータスコード403とは何ですか?

See all articles