現在の位置: ホーム> 最新記事一覧> 複数のDockerコンテナ間のWebロードバランスを実現するようにnginxを構成する方法

複数のDockerコンテナ間のWebロードバランスを実現するようにnginxを構成する方法

M66 2025-06-13

Nginxプロキシサーバーを構成する方法複数のDockerコンテナ間でバランスを取りますWebサービス

導入:
コンテナ化技術の広範な適用により、Webサービスの負荷分散の需要が徐々に増加しました。効率的なWebサーバーおよびリバースプロキシサーバーとして、Nginxは多くの開発者が負荷分散を達成するための優先ツールになりました。この記事では、複数のDockerコンテナ間のWebサービスの負荷分散を実現するために、Nginxプロキシサーバーを構成する方法について詳しく説明します。

1. Docker環境をインストールします

まず、ホストにDocker環境をインストールする必要があります。 Dockerは、開発者がアプリケーションをより効率的に構築、公開、実行するのに役立つオープンソースコンテナ化されたプラットフォームです。特定のインストール手順については、Dockerの公式ドキュメントを参照してください。

2。DockerFileを書きます

Webサービスを構成する前に、Webサービス用のDockerFileを作成する必要があります。 DockerFileは、Docker画像の構築方法を定義するテキストファイルです。このファイルを介して、使用される基本的な画像、インストールする必要がある依存関係、およびその他の関連操作を指定できます。

これが簡単なdockerfileの例です。

nginxから
nginx.conf /etc/nginx/nginx.confをコピーします
default.conf /etc/nginx/conf.d/default.confをコピーします
HTML/usr/share/nginx/htmlをコピーします
80を公共します
cmd ["nginx"、 "-g"、 "daemon off;"]]

この例では、公式のNginxベース画像を使用し、カスタム構成ファイルとWebリソースをコンテナにコピーしました。最後に、コンテナの80ポートを公開し、CMDコマンドを使用してNginxサービスを開始します。

3。nginxプロキシサーバーを構成します

Docker環境の構成を完了した後、次のステップはNGINXプロキシサーバーを構成することです。まず、新しいnginx構成ファイル(nginx.conf)を作成し、ロードバランス関連の構成を定義する必要があります。

NGINX構成ファイルの例を次に示します。

worker_processes 1;

イベント{
    worker_connections 1024;
}

http {
    上流のバックエンド{
        サーバーバックエンド1:80;
        サーバーバックエンド2:80;
    }

    サーバー{
        匂いく80;

        位置 / {
            proxy_pass http:// backend;
            proxy_set_headerホスト$ host;
            proxy_set_header x-real-ip $ remote_addr;
        }
    }
}

この構成ファイルでは、複数のバックエンドコンテナのアドレスとポートを含むバックエンドと呼ばれる上流を定義します。次に、サーバーブロックで、proxy_passディレクティブを介してバックエンドサービスにリクエストを転送し、proxy_set_headerディレクティブを使用してリクエストヘッダーを渡します。

4. Docker画像を作成します

nginx.conf構成ファイルとdockerfileを同じディレクトリに配置し、次のコマンドを使用してdocker画像を作成します。

docker build -t my -nginx。

5.複数のコンテナを実行します

NGINXプロキシサーバーを構成した後、バックエンドサービスとして複数のDockerコンテナを起動する必要があります。次のコマンドで2つのコンテナを実行できます。

docker run -d -name backend1 my -nginx
docker run -d -name backend2 my -nginx

このようにして、両方のコンテナのnginxサービスが実行され始めます。

6. nginxプロキシサーバーを起動します

次に、構成されたnginxプロキシサーバーを実行し、バックエンドコンテナに接続するための新しいコンテナを作成する必要があります。プロキシサーバーは、次のコマンドで開始できます。

docker run -d -p 80:80 -link backend1  -  link backend2 my -nginx

この時点で、ホストポート80からのすべての要求は、Nginxプロキシサーバーによって受信され、負荷分散アルゴリズムに従ってバックエンドコンテナに配布されます。

要約します

Nginxプロキシサーバーを構成することにより、複数のDockerコンテナ間のWebサービスロードバランスを簡単に実現できます。これにより、アプリケーションのパフォーマンスと安定性が向上するだけでなく、サーバーリソースを効果的に利用します。うまくいけば、この記事で提供されている手順とコードの例が、ロードバランシングにNGINXをより適切に構成および使用するのに役立つことを願っています。