Docker Compose、Nginx、MariaDB による PHP アプリケーションの水平拡張
インターネットが発展し、アプリケーションが複雑になるにつれて、アプリケーションを効率的に拡張する方法は、プログラムのパフォーマンスが重要になります。重要な課題。水平スケーリングは、サーバー インスタンスを追加することでアプリケーションの処理能力を向上させるソリューションです。この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションの水平スケーリングを実現する方法と、具体的なコード例を紹介します。
環境の準備:
始める前に、Docker と Docker Compose がインストールされたマシンなど、いくつかの環境を準備する必要があります。これらのツールをまだインストールしていない場合は、公式 Web サイトで関連するインストール ガイドを見つけることができます。
ステップ 1: Docker Compose ファイルを作成する
まず、docker-compose.yml という名前のファイルを作成し、その中にサービスを定義します。サンプル構成ファイルの内容は次のとおりです。
version: '3.7' services: web: build: ./web ports: - 80:80 networks: - app-net depends_on: - db db: image: mariadb environment: - MYSQL_ROOT_PASSWORD=your_password networks: - app-net networks: app-net:
上の例では、web と db という 2 つのサービスを定義しました。 Web サービスは Nginx および PHP アプリケーションの実行に使用され、db サービスは MariaDB データベースの実行に使用されます。
ステップ 2: Nginx および PHP アプリケーション用の Dockerfile を作成する
前のステップでは、Web サービスのビルド パスを ./web として指定しました。ここで、Nginx および PHP アプリケーションのイメージを構築するために、このディレクトリに Dockerfile を作成する必要があります。以下は簡単な Dockerfile の例です:
FROM nginx:latest # 安装PHP和一些扩展 RUN apt-get update && apt-get install -y php7.4-cli php7.4-fpm php7.4-mysql # 复制PHP应用程序到容器中 COPY app /var/www/html # 配置Nginx COPY nginx.conf /etc/nginx/nginx.conf # 启动Nginx和PHP-FPM CMD service php7.4-fpm start && nginx -g "daemon off;"
上の例では、nginx:latest をベース イメージとして使用し、その中に PHP といくつかの一般的な拡張機能をインストールします。次に、PHP アプリケーションをコンテナーにコピーし、カスタマイズした nginx.conf ファイルをコピーしました。
ステップ 3: Nginx 構成ファイルを作成する
前のステップの Dockerfile では、カスタマイズされた nginx.conf ファイルを使用しました。次に、このファイルを ./web ディレクトリに作成し、Nginx 構成を定義する必要があります。以下は、nginx.conf ファイルの例の内容です。
worker_processes 1; events { worker_connections 1024; } http { server { listen 80; server_name localhost; root /var/www/html; index index.php index.html; location ~ .php$ { fastcgi_pass web:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location / { try_files $uri $uri/ /index.php?$query_string; } } }
上の例では、Nginx の仮想ホストを定義し、リクエストを web という名前の PHP-FPM コンテナに転送します。
ステップ 4: PHP アプリケーションを作成する
前のステップの nginx.conf 構成ファイルで、PHP アプリケーションのルート ディレクトリを /var/www/html として指定しました。ここで、./web ディレクトリの下に app という名前のフォルダーを作成し、その中に PHP アプリケーションのコードを入れる必要があります。
ステップ 5: コンテナ クラスターを開始する
上記の準備が完了したら、コンテナ クラスターを開始できます。ターミナルで、docker-compose.yml が存在するディレクトリに入り、次のコマンドを実行します。
docker-compose up -d
このコマンドは、Web サービスと DB サービスを開始し、ネットワーク内の app-net に接続します。 Web サービスは、ホスト マシンのポート 80 をバインドして、外部からの HTTP リクエストを受信します。
これまでのところ、私たちは Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションの水平拡張を実現することに成功しています。ここで、次のコマンドを使用してアプリケーションを展開できます。
docker-compose up --scale web=n
ここで、n は展開する Web サービス インスタンスの数です。
概要:
この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションの水平拡張を実現する方法を紹介し、具体的なコード例を示します。これらのツールを使用すると、増大するユーザー ニーズに合わせてアプリケーションのパフォーマンスを迅速かつ簡単に拡張できます。この記事が実践中の皆様のお役に立てれば幸いです。
以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションの水平スケーリングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。