NGINX と PM2 を使用して VPS サーバーの負荷分散を最適化する方法
はじめに:
最新の Web アプリケーションでは、負荷分散は非常に重要なテクノロジーです。 。トラフィックを複数のサーバーに分散することで、アプリケーションのスケーラビリティと信頼性を向上させることができます。この記事では、NGINX と PM2 を使用して VPS サーバーの負荷分散を最適化する方法を紹介します。具体的なコード例を使用して各ステップを詳しく説明します。
ステップ 1: NGINX をインストールする
まず、高性能 Web サーバーおよびリバース プロキシ サーバーである NGINX をインストールする必要があります。 Ubuntu に NGINX をインストールするための具体的なコマンドは次のとおりです。
$ apt-get update $ apt-get install nginx
ステップ 2: NGINX の構成
インストールが完了したら、NGINX の構成を行う必要があります。サンプル構成ファイルの内容は次のとおりです。
http { upstream backend { server backend1.example.com; server backend2.example.com; } server { listen 80; location / { proxy_pass http://backend; } } }
上の例では、backend という名前のサーバー クラスターをセットアップします。このクラスターには、2 つのバックエンド サーバー backend1.example.com と backend2.example.com が含まれています。次に、ポート 80 でリッスンし、すべてのトラフィックをバックエンド サーバー クラスターにプロキシします。
ステップ 3: PM2 をインストールする
次に、PM2 プロセス マネージャーをインストールする必要があります。 PM2 は、サーバー上で Node.js アプリケーションを起動して管理するのに役立ちます。 Ubuntu に PM2 をインストールするための具体的なコマンドは次のとおりです:
$ npm install pm2 -g
ステップ 4: バックエンド サーバーにアプリケーションをデプロイする
続行する前に、バックエンド サーバーに単純な Node.js アプリケーションをデプロイする必要があります。以下は、単純な Express アプリケーションのサンプル コードです:
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello, World!'); }); app.listen(3000, () => { console.log('App is running on port 3000'); });
上記のコードを app.js として保存し、バックエンド サーバーで次のコマンドを実行してアプリケーションを開始します:
$ node app.js
Now , our http://backend1.example.com:3000 にアクセスすると、アプリケーションにアクセスできるようになります。
ステップ 5: PM2 を使用してバックエンド サーバー上でアプリケーションを開始する
PM2 をプロセス管理に使用するには、アプリケーションが存在するディレクトリに入り、次のコマンドを使用する必要があります。アプリケーションを開始します:
$ pm2 start app.js
上記のコマンドは、アプリケーションをバックグラウンドでデーモン プロセスとして実行し、アプリケーションの再起動やログ管理などを自動的に処理します。
ステップ 6: NGINX でロード バランシングを構成する
これで、NGINX を構成し、バックエンド サーバーで Node.js アプリケーションを開始しました。負荷分散を実現するには、NGINX 構成ファイルを変更する必要があります。変更されたサンプル構成ファイルの内容は次のとおりです。
http { upstream backend { server backend1.example.com:3000; server backend2.example.com:3000; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }
上記の構成ファイルでは、バックエンド サーバーのポートを 80 から 3000 に変更し、重要な HTTP ヘッダー情報を渡すための proxy_set_header ディレクティブを追加しました。 。
ステップ 7: NGINX サービスと PM2 サービスを再起動する
負荷分散テストを実行する前に、変更を有効にするために NGINX サービスと PM2 サービスを再起動する必要があります。再起動コマンドは次のとおりです。
$ service nginx restart $ pm2 restart all
ステップ 8: 負荷分散のテスト
次に、Web ブラウザまたはcurl コマンドを使用して、負荷分散が適切に機能しているかどうかをテストできます。 http://yourdomain.com にアクセスすると、「Hello, World!」という応答が返されるはずです。ページを更新するたびに、バックエンド サーバーの異なるサーバー名が表示されるはずです。これは、負荷分散が有効であることを意味します。
結論:
NGINX と PM2 を使用することで、VPS サーバー上の負荷分散を簡単に実現できます。負荷分散により、アプリケーションのスケーラビリティと信頼性が向上し、ユーザーへのサービスが向上します。この記事で提供される具体的なコード例と手順が、読者のサーバー最適化と負荷分散の実践に役立つことを願っています。
以上がNGINX と PM2 を使用して VPS サーバーの負荷分散を最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Nginxは、高い並行性と静的コンテンツの処理に適していますが、Apacheは動的な内容と複雑なURL書き換えに適しています。 1.Nginxは、高い並行性に適したイベント駆動型モデルを採用しています。 2。Apacheは、動的なコンテンツに適したプロセスモデルまたはスレッドモデルを使用します。 3。NGINX構成は簡単ですが、Apache構成は複雑ですが、より柔軟です。

NginxとApacheにはそれぞれ独自の利点があり、選択は特定のニーズに依存します。 1.NGINXは、単純な展開を備えた高い並行性に適しており、構成の例には仮想ホストとリバースプロキシが含まれます。 2。Apacheは複雑な構成に適しており、展開も同様に簡単です。構成の例には、仮想ホストとURL書き換えが含まれます。

Nginxunitの目的は、Webアプリケーションの展開と管理を簡素化することです。その利点には、次のものが含まれます。1)Python、PHP、Go、Java、node.jsなどの複数のプログラミング言語をサポートします。 2)動的構成と自動リロード関数を提供します。 3)統一されたAPIを介してアプリケーションライフサイクルを管理します。 4)非同期I/Oモデルを採用して、高い並行性と負荷分散をサポートします。

Nginxは2002年に開始され、C10Kの問題を解決するためにIgorsysoevによって開発されました。 1.Nginxは、高性能の非同期アーキテクチャであり、高い並行性に適した高性能Webサーバーです。 2。システムのパフォーマンスと信頼性を向上させるために、リバースプロキシ、ロードバランス、キャッシュなどの高度な機能を提供します。 3。最適化手法には、HTTP/2とセキュリティ構成を使用した、ワーカープロセスの数の調整、GZIP圧縮の有効化が含まれます。

NginxとApacheの主なアーキテクチャの違いは、Nginxがイベント駆動型の非同期非ブロッキングモデルを採用し、Apacheはプロセスまたはスレッドモデルを使用することです。 1)nginxは、静的な内容と逆プロキシに適したイベントループとI/O多重化メカニズムを介して、高電流接続を効率的に処理します。 2)Apacheは、非常に安定しているがリソース消費量が高いマルチプロセスまたはマルチスレッドモデルを採用しており、リッチモジュールの拡張が必要なシナリオに適しています。

Nginxは、高い同時コンテンツと静的コンテンツの処理に適していますが、Apacheは複雑な構成と動的コンテンツに適しています。 1。NGINXは、交通量の多いシナリオに適した同時接続を効率的に処理しますが、動的コンテンツを処理するときは追加の構成が必要です。 2。Apacheは、複雑なニーズに適したリッチモジュールと柔軟な構成を提供しますが、並行性のパフォーマンスが低いです。

NginxとApacheにはそれぞれ独自の利点と欠点があり、選択は特定のニーズに基づいている必要があります。 1.Nginxは、非同期の非ブロッキングアーキテクチャのため、高い並行性シナリオに適しています。 2。Apacheは、モジュラー設計のため、複雑な構成を必要とする低変動シナリオに適しています。

Nginxunitは、複数のプログラミング言語をサポートし、動的構成、ゼロダウンタイム更新、組み込みのロードバランシングなどの機能を提供するオープンソースアプリケーションサーバーです。 1。動的構成:再起動せずに構成を変更できます。 2。多言語サポート:Python、Go、Java、PHPなどと互換性があります。 4。ビルトインロードバランシング:リクエストは、複数のアプリケーションインスタンスに配布できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ホットトピック









