Nginx プロキシ サーバーを介して Docker コンテナに Web サービスの負荷分散を実装するにはどうすればよいですか?
最新のインターネット アプリケーションでは、負荷分散は重要な考慮事項であり、複数のサーバー間でリソースの割り当てと使用率を実現し、システムの可用性と負荷容量を向上させるのに役立ちます。 Docker コンテナ内で実行されている Web サービスは、Nginx プロキシ サーバーを通じて負荷分散することもできます。この記事では、Nginx プロキシ サーバーを介して Docker コンテナ内の Web サービスの負荷分散を実装する方法を紹介します。
まず、Web サービスを実行するために Docker コンテナ環境をセットアップする必要があります。この例では、2 つのコンテナを使用して負荷分散状況をシミュレートします。
Docker コンテナを実行するには、最初に Docker をインストールする必要があります。 Docker は次のコマンドでインストールできます。
sudo apt-get update sudo apt-get install docker.io
Docker イメージを使用して Web サービス コンテナーを作成できます。ここでは例として単純な Nginx イメージを使用します。
docker run -d -p 8081:80 --name=web1 nginx docker run -d -p 8082:80 --name=web2 nginx
上記のコマンドは、ローカル ポート 8081 と 8082 にそれぞれマップされ、web1 と web2 という名前の 2 つのコンテナを作成します。
負荷分散ソリューションでは、Nginx がプロキシ サーバーとして機能し、クライアントのリクエストをバックエンド Web サービス コンテナに転送します。では、Nginx を設定しましょう。
まず、Nginx をインストールします:
sudo apt-get install nginx
次に、Nginx 構成ファイルを編集します /etc/nginx/nginx.conf
:
user nginx; worker_processes auto; http { ... upstream backend { server 127.0.0.1:8081; server 127.0.0.1:8082; } ... server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ... }
上記では構成では、upstream ディレクティブを使用して 2 つのバックエンド サーバー 127.0.0.1:8081 と 127.0.0.1:8082 を定義します。次に、サーバー ディレクティブで、proxy_pass ディレクティブを使用してリクエストをバックエンド サーバーに転送し、proxy_set_header ディレクティブを通じていくつかのリクエスト ヘッダーを設定します。
Nginx の構成が完了したら、構成を有効にするために Nginx サービスを再起動する必要があります。
sudo systemctl restart nginx
これで、ブラウザを通じて Nginx プロキシ サーバーにアクセスし、負荷分散の効果を観察できるようになりました。
ブラウザに http://example.com
と入力し、ページを複数回更新します。リクエストがバックエンドの 2 つの Web サービス コンテナに均等に転送されることがわかります。
これまでのところ、Nginx プロキシ サーバーを介して Docker コンテナに Web サービスの負荷分散を実装することに成功しています。
概要:
負荷分散は、複数のサーバー間でリソースの割り当てと使用率を実現し、システムの可用性と負荷容量を向上させるのに役立ちます。 Nginx プロキシ サーバーを通じて、Docker コンテナ内の Web サービスの負荷分散を実現できます。上記は、Nginx プロキシ サーバーを介して負荷分散を実装するための手順とサンプル コードです。この記事がお役に立てば幸いです!
以上がNginx プロキシ サーバーを介して Docker コンテナに Web サービスの負荷分散を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。