Docker で Nginx プロキシ サーバーを使用して Web サービスの水平拡張を実現するにはどうすればよいですか?
はじめに:
今日のインターネットの開発では、高可用性と高効率がすべての Web サービスの焦点となっています。信頼性の高いサービスを提供し、水平方向のスケーラビリティを実現するために、通常はプロキシ サーバーを使用してリクエストの負荷分散を行います。 Docker は軽量でポータブルなコンテナ テクノロジとして、プロキシ サーバーを実装する際の展開プロセスを簡素化できます。この記事では、Docker で Nginx プロキシ サーバーを使用して Web サービスの水平拡張を実現する方法を紹介します。
パート 1: 理論的な概要
パート 2: 実践的な演習
Docker で Nginx プロキシ サーバーを使用して Web サービスの水平拡張を実現する手順は次のとおりです:
ステップ 1: インストールDocker と Docker Compose
まず、ホストに Docker と Docker Compose をインストールする必要があります。具体的なインストール方法については公式ドキュメントを参照してください。
ステップ 2: バックエンド サービスを作成する
この例では、2 つの単純なバックエンド サービスを使用して実際のシナリオをシミュレートします。以下に示すように、バックエンド サービスのコードを保存する 2 つのフォルダーを作成し、単純な Python サービス スクリプトを作成します。
// backend_service_1.py
from flask import Flask
def hello_world():
return 'Hello from Backend Service 1'
name == '__main__ ':
app.run(debug=True, host='0.0.0.0')
from Flask import Flask
def hello_world( ):
return 'Hello from Backend Service 2'
name == '__main__':
app.run(debug=True, host='0.0.0.0')
Docker コンテナを作成する前に、次のことを行う必要があります。 Dockerfile を作成してコンテナー イメージを構築します。バックエンド サービス コードが保存されているフォルダーに「Dockerfile」という名前のファイルを作成し、次の内容を追加します:
を繰り返します。上記の手順に従って、バックエンド サービス 2 用の Docker コンテナを作成します。 Dockerfile の CMD コマンドを次のように変更するだけです: CMD [ "python", "./backend_service_2.py" ]ステップ 4: Nginx プロキシ サーバー コンテナーを作成する
ホスト上「docker-compose.yml」という名前のファイルを作成し、次の内容を追加します:
services:
nginx:
image: nginx:stable-alpine ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - backend_service_1 - backend_service_2
build: context: ./backend_service_1 dockerfile: Dockerfile
build: context: ./backend_service_2 dockerfile: Dockerfile
worker_connections 1024;
upstream backend { server backend_service_1:5000; server backend_service_2:5000; } server { listen 80; location / { proxy_pass http://backend; } }
ターミナルを開いて、次のディレクトリに移動します。上記のファイルを作成し、次のコマンドを実行します:
以上がDocker で Nginx プロキシ サーバーを使用して Web サービスの水平拡張を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。