Docker Compose と Nginx による PHP アプリケーションの高可用性デプロイメント
最新の Web アプリケーション開発において、高可用性は非常に重要な要素です。 Docker Compose と Nginx を使用することで、PHP アプリケーションの高可用性デプロイメントを実現し、障害が発生した場合でもアプリケーションを確実に利用できるようにすることができます。
Docker は、アプリケーションとその依存関係を自己完結型コンテナにパッケージ化する、人気のあるコンテナ化プラットフォームです。 Docker Compose は、複数のコンテナ アプリケーションを定義して実行する簡単な方法を提供します。
Nginx は、高性能 Web サーバーおよびリバース プロキシ サーバーです。負荷分散のために受信トラフィックを複数のバックエンド サーバーに分散できます。
以下は、Docker Compose と Nginx を使用して PHP アプリケーションの高可用性デプロイメントを実現する例です。
まず、docker-compose.yml ファイルを作成して、アプリケーションとNginxコンテナ。このファイルでは、複数のサービスを定義でき、各サービスはコンテナーに対応します。
version: '3' services: app1: build: context: . dockerfile: Dockerfile restart: always app2: build: context: . dockerfile: Dockerfile restart: always nginx: image: nginx ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf restart: always
この例では、2 つのアプリケーション コンテナー (app1 と app2) と 1 つの Nginx コンテナー (nginx) を同時に作成しました。 app1 と app2 は、同じアプリケーションにすることも、冗長性と高可用性を実現するために異なるアプリケーションにすることもできます。
次に、nginx.conf 構成ファイルを作成し、Nginx コンテナにマウントする必要があります。この構成ファイルは、Nginx をリバース プロキシ サーバーとして使用し、受信トラフィックを 2 つのアプリケーション コンテナー間で分散します。
http { upstream backend { server app1:8080; server app2:8080; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }
この例では、2 つのアプリケーション コンテナのアドレスとポートを Nginx のアップストリーム ブロックのサーバーとして構成します。次に、メイン サーバー ブロックで、トラフィックをバックエンドにプロキシします。
最後に、アプリケーション コンテナを構築するために Dockerfile を作成する必要があります。この Dockerfile は、特定のアプリケーションに合わせてカスタマイズできます。
FROM php:7.4.15-fpm WORKDIR /var/www/html COPY . . RUN chmod -R 755 storage CMD ["php-fpm"]
この例では、公式の PHP イメージを使用し、作業ディレクトリを /var/www/html に設定します。次に、アプリケーションのコードとファイルをコンテナーにコピーし、適切な権限を設定します。最後に、php-fpm コマンドを使用して PHP-FPM サーバーを起動します。
上記の手順を完了したら、次のコマンドを使用して高可用性 PHP アプリケーションを起動できます:
docker-compose up -d
このコマンドはすべてのコンテナを起動し、バックグラウンドに置きます。
上記の手順により、Docker Compose と Nginx を使用した PHP アプリケーションの高可用性デプロイメントを正常に実装できました。これで、アプリケーションは複数のコンテナーで実行され、Nginx を通じて負荷分散されるようになります。
上記は単なる単純な例であり、特定のニーズに応じてカスタマイズできます。 Docker Compose と Nginx を使用すると、PHP アプリケーションの高可用性デプロイメントを簡単に実現し、障害が発生した場合でもアプリケーションを確実に利用できるようにすることができます。
以上がDocker Compose と Nginx を使用した PHP アプリケーションの可用性の高いデプロイメントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。