ホームページ >バックエンド開発 >PHPチュートリアル >Docker Compose、Nginx、MariaDB を使用して回復力のある PHP アプリケーション アーキテクチャを構築する

Docker Compose、Nginx、MariaDB を使用して回復力のある PHP アプリケーション アーキテクチャを構築する

WBOY
WBOYオリジナル
2023-10-12 10:31:56565ブラウズ

使用Docker Compose、Nginx和MariaDB构建弹性的PHP应用程序架构

Docker Compose、Nginx、MariaDB を使用してエラスティックな PHP アプリケーション アーキテクチャを構築する

クラウド コンピューティングとコンテナ化テクノロジーの発展により、エラスティックなアプリケーション アーキテクチャの構築がより重要になりました。 。この記事では、Docker Compose、Nginx、MariaDB を使用して回復力のある PHP アプリケーション アーキテクチャを構築する方法を紹介し、具体的なコード例を示します。

  1. Docker と Docker Compose のインストール
    まず、ローカル マシンに Docker と Docker Compose をインストールする必要があります。 Docker は、コンテナの構築と管理に役立つ軽量のコンテナ化プラットフォームです。Docker Compose は、単一の構成ファイルを通じて複数の Docker コンテナを定義して実行できるツールです。オペレーティング システムの種類に応じたインストールと構成については、公式ドキュメントを参照してください。
  2. Docker Compose ファイルを作成する
    次に、アプリケーション アーキテクチャを定義するために Docker Compose 構成ファイルを作成する必要があります。プロジェクトのルート ディレクトリに docker-compose.yml という名前のファイルを作成し、次の内容を追加します。
version: '3'
services:
  web:
    image: nginx:latest
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - php
  php:
    image: php:latest
    restart: always
    volumes:
      - ./code:/var/www/html
  db:
    image: mariadb:latest
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=app
      - MYSQL_USER=appuser
      - MYSQL_PASSWORD=apppassword

上記の構成ファイルは、web、php、db の 3 つのサービスを定義します。 Web サービスは、最新の Nginx イメージを使用して、ポート 80 と 443 をホストにマッピングします。 Web サービスは、ローカルの nginx.conf ファイルをコンテナーにマウントすることによって、Nginx 構成もカスタマイズします。 php サービスは最新の PHP イメージを使用し、ローカル コード ディレクトリをコンテナーにマウントすることでコードを共有します。 db サービスは最新の MariaDB イメージを使用し、root ユーザーとアプリ データベースのパスワードが設定されます。

  1. Nginx 構成ファイルの作成
    Nginx が適切に動作するには、Nginx 構成ファイルを作成し、Web コンテナにマウントする必要があります。プロジェクトのルート ディレクトリに nginx.conf という名前のファイルを作成し、次の内容を追加します。
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    server {
        listen 80;

        location / {
            proxy_pass http://php:80;
            proxy_set_header Host $host;
        }
    }
}

上記の構成ファイルでは、Nginx ワーカー プロセスの数、ポートおよびプロキシ ルールを指定します。 Nginx リスニング用。この例では、Nginx はすべてのリクエストを PHP コンテナーのポート 80 にプロキシします。

  1. PHP アプリケーションの書き込み
    コード ディレクトリに PHP アプリケーションのコードを書き込みます。ここでは特定の PHP コードは示しません。独自のニーズに応じて PHP アプリケーションを作成できます。重要なのは、これらのコードをコード ディレクトリに配置して、PHP コンテナと共有することです。
  2. コンテナの起動
    プロジェクトのルート ディレクトリでターミナルを開き、次のコマンドを実行してコンテナを起動します:
docker-compose up -d

このコマンドは構成に基づきます。 docker-compose.yml ファイル内 すべてのコンテナを起動して管理します。 -d パラメーターを追加すると、コンテナーがバックグラウンドで実行されます。

  1. アプリケーションへのアクセス
    http://localhost にアクセスすると、ブラウザ経由で PHP アプリケーションにアクセスできるようになります。 Nginx は、php コンテナーで実行されている PHP アプリケーションにリクエストをプロキシし、結果をブラウザーに返します。
  2. コンテナの拡張
    アプリケーションを拡張する必要がある場合、Docker Compose を使用すると非常に簡単に拡張できます。 PHP コンテナの数を増やすことで、より多くのリクエストを処理できます。 docker-compose.yml ファイル内の PHP サービスを変更し、次のようにコピーの数を増やすだけです。
  php:
    image: php:latest
    restart: always
    volumes:
      - ./code:/var/www/html
    scale: 3

上記の構成では 3 つの PHP コンテナーが作成され、各コンテナーのコードと構成は同じになります。このようにして、より多くのリクエストが来ると、Docker Compose は自動的にリクエストを異なる PHP コンテナに分散し、スケーリングを実現します。

概要
この記事では、Docker Compose、Nginx、MariaDB を使用して回復力のある PHP アプリケーション アーキテクチャを構築する方法を紹介します。 Docker Compose を使用すると、複数の Docker コンテナを簡単に定義して実行し、Nginx を介してリクエスト プロキシと負荷分散を実装し、MariaDB を介してアプリケーション データを保存できます。また、PHP コンテナーの数を増やしてアプリケーションをスケールする方法も示しました。この記事がお役に立てば幸いです。ご質問がございましたら、お気軽にお問い合わせください。

以上がDocker Compose、Nginx、MariaDB を使用して回復力のある PHP アプリケーション アーキテクチャを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。