Docker で Nginx プロキシ サーバーを使用して、複数の Web サーバーの負荷分散を実現するにはどうすればよいですか?
要約:
最新の Web アプリケーションのアーキテクチャでは、負荷分散は重要なトピックです。トラフィックを複数のサーバーに分散することにより、システムの可用性、パフォーマンス、およびスケーラビリティを向上させることができます。この記事では、Docker と Nginx プロキシ サーバーを使用して、複数の Web サーバーの負荷分散を実現する方法を紹介します。
FROM nginx:latest COPY index.html /usr/share/nginx/html/ COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80
ここでは、Nginx が提供する公式イメージを使用し、ファイルindex.html と nginx.conf を対応する場所にコピーします。 Index.html には、表示したい Web コンテンツを配置できます。 nginx.confでは、Nginx関連の設定を行うことができます。
http { upstream backend { server web1:80; server web2:80; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; } } }
ここでは、2 つの Web サーバーのアドレスを含む、backend という名前のアップストリーム サーバー グループを定義します。サーバー ブロックでは、ポート 80 を Nginx プロキシ サーバーにバインドし、プロキシ トラフィックをバックエンド サーバー グループにバインドします。 proxy_set_header ディレクティブは、リクエストの Host ヘッダーをサーバーのアドレスに設定するために使用されます。
まず、Web サーバー イメージを構築する必要があります。イメージが配置されているディレクトリで、次のコマンドを実行します。
docker build -t web-server .
これで、複数の Web サーバー インスタンスを実行できるようになります。次のコマンドを 2 回実行して、2 つのインスタンスを作成します。
docker run -d --name web1 web-server docker run -d --name web2 web-server
次に、Nginx プロキシ サーバー インスタンスを作成する必要があります。次のコマンドを実行します。
docker run -d -p 80:80 --name nginx-proxy --link web1 --link web2 nginx
ここでは、--link パラメーターを使用して、Nginx プロキシ サーバーを 2 つの Web サーバー インスタンスに接続しました。
Web サーバー コンテナのログを見ると、リクエストがさまざまなインスタンスにどのように分散されているかがわかります。
docker logs web1 docker logs web2
結論:
Docker と Nginx プロキシ サーバーを使用すると、複数の Web サーバーの負荷分散を簡単に実現できます。この方法はシンプルで効率的であるだけでなく、柔軟性と拡張性にも優れています。この記事があなたのお役に立てば幸いです、読んでいただきありがとうございます!
以上がDocker で Nginx プロキシ サーバーを使用して複数の Web サーバーの負荷分散を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。