Docker Compose、Nginx、MariaDB の黄金レシピ: 高可用性 PHP アプリケーション アーキテクチャ
[はじめに]
今日のインターネット時代では、高可用性が不可欠です。すべてのウェブサイトとアプリは非常に重要です。この目標を達成するには、安定したスケーラブルでパフォーマンスの高いアーキテクチャを構築する必要があります。この記事では、Docker Compose、Nginx、MariaDB を使用して高可用性 PHP アプリケーション アーキテクチャを構築する方法を紹介し、具体的なコード例を示します。
[パート 1: アーキテクチャの概要]
私たちの目標は、PHP アプリケーションが複数のインスタンスで実行され、負荷分散を通じて分散される高可用性アーキテクチャを構築することです。さらに、データベース層として MariaDB を使用し、リバース プロキシ サーバーとして Nginx を使用します。
[パート 2: Docker Compose]
Docker Compose を使用して、アプリケーション スタック全体を定義および管理します。これにより、単純な YAML ファイルを使用してすべてのコンテナを定義および構成できます。以下は、PHP アプリケーション コンテナ、Nginx コンテナ、および MariaDB コンテナを含む Docker Compose ファイルの例です。
version: '3' services: app: build: context: . dockerfile: Dockerfile ports: - 8000:80 environment: - DB_HOST=mariadb nginx: image: nginx:latest ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro mariadb: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=secret
[パート 3: Nginx 構成]
Nginx はリバース プロキシ サーバーとして機能します。負荷分散を通じて複数の PHP アプリケーション インスタンスに分散されます。これを実現するには、Nginx の設定ファイルを変更する必要があります。以下は、簡略化された Nginx 構成ファイルの例です。
worker_processes 1; events { worker_connections 1024; } http { upstream php { server app1:80; server app2:80; # 可以根据需要修改添加更多的PHP应用实例 } server { listen 80; location / { proxy_pass http://php; } } }
[パート 4: PHP アプリケーション]
PHP アプリケーションは、Slim フレームワークを使用して HTTP リクエストを処理する単純な例です。以下は、index.php ファイルの例です:
<?php require __DIR__ . '/vendor/autoload.php'; $app = new SlimApp(); $app->get('/', function ($request, $response) { $response->getBody()->write("Hello, world!"); return $response; }); $app->run();
[パート 5: 起動と管理]
アプリケーション スタックを開始するには、次のコマンドを実行するだけです:
docker-compose up -d
これが開始されます。すべてのコンテナを接続して接続します。 PHP アプリケーションのインスタンスが複数ある場合、Docker Compose はインスタンスごとに新しいコンテナーを作成します。
アプリケーションをスケーリングするには、次のコマンドを実行するだけです:
docker-compose scale app=3
これにより、既存のアプリケーション インスタンスに加えて、さらに 2 つのインスタンスが起動されます。
[結論]
Docker Compose、Nginx、MariaDB を組み合わせることで、可用性が高く、スケーラブルでパフォーマンスの高い PHP アプリケーション アーキテクチャを構築できます。この黄金のレシピは、アプリケーションの信頼性を向上させるだけでなく、展開と管理も簡素化します。この記事で提供されている具体的なコード例が役立つことを願っています。あなたのアプリケーションが成功しますように!
以上がDocker Compose、Nginx、MariaDB の黄金レシピ: 高可用性 PHP アプリケーション アーキテクチャの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。