ホームページ  >  記事  >  バックエンド開発  >  Nginx プロキシ サーバーを介して Docker コンテナに Web サービスの負荷分散を実装するにはどうすればよいですか?

Nginx プロキシ サーバーを介して Docker コンテナに Web サービスの負荷分散を実装するにはどうすればよいですか?

PHPz
PHPzオリジナル
2023-09-05 17:07:441438ブラウズ

Nginx プロキシ サーバーを介して Docker コンテナに Web サービスの負荷分散を実装するにはどうすればよいですか?

Nginx プロキシ サーバーを介して Docker コンテナに Web サービスの負荷分散を実装するにはどうすればよいですか?

最新のインターネット アプリケーションでは、負荷分散は重要な考慮事項であり、複数のサーバー間でリソースの割り当てと使用率を実現し、システムの可用性と負荷容量を向上させるのに役立ちます。 Docker コンテナ内で実行されている Web サービスは、Nginx プロキシ サーバーを通じて負荷分散することもできます。この記事では、Nginx プロキシ サーバーを介して Docker コンテナ内の Web サービスの負荷分散を実装する方法を紹介します。

まず、Web サービスを実行するために Docker コンテナ環境をセットアップする必要があります。この例では、2 つのコンテナを使用して負荷分散状況をシミュレートします。

  1. Docker のインストール

Docker コンテナを実行するには、最初に Docker をインストールする必要があります。 Docker は次のコマンドでインストールできます。

sudo apt-get update
sudo apt-get install docker.io
  1. 2 つの Web サービス コンテナーの作成

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 つのコンテナを作成します。

  1. Nginx プロキシ サーバーの構成

負荷分散ソリューションでは、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 ディレクティブを通じていくつかのリクエスト ヘッダーを設定します。

  1. Nginx サービスを再起動する

Nginx の構成が完了したら、構成を有効にするために Nginx サービスを再起動する必要があります。

sudo systemctl restart nginx
  1. 負荷分散のテスト

これで、ブラウザを通じて Nginx プロキシ サーバーにアクセスし、負荷分散の効果を観察できるようになりました。

ブラウザに http://example.com と入力し、ページを複数回更新します。リクエストがバックエンドの 2 つの Web サービス コンテナに均等に転送されることがわかります。

これまでのところ、Nginx プロキシ サーバーを介して Docker コンテナに Web サービスの負荷分散を実装することに成功しています。

概要:

負荷分散は、複数のサーバー間でリソースの割り当てと使用率を実現し、システムの可用性と負荷容量を向上させるのに役立ちます。 Nginx プロキシ サーバーを通じて、Docker コンテナ内の Web サービスの負荷分散を実現できます。上記は、Nginx プロキシ サーバーを介して負荷分散を実装するための手順とサンプル コードです。この記事がお役に立てば幸いです!

以上がNginx プロキシ サーバーを介して Docker コンテナに Web サービスの負荷分散を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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