Docker Compose、Nginx、MariaDB を使用してスケーラブルな PHP アプリケーション クラスターを構築する
はじめに:
最新のアプリケーション開発では、スケーラブルなアプリケーションを構築する プログラムのクラスタリングは非常に重要です。 Docker Compose、Nginx、MariaDB を使用すると、アプリケーションに高可用性と柔軟性を提供するスケーラブルな PHP アプリケーション クラスターを簡単に構築できます。この記事では、これらのツールを使用して、シンプルかつ強力な PHP アプリケーションのクラスターを構築する方法を検討し、具体的なコード例を示します。
始める前に、Docker と Docker Compose がインストールされていることを確認する必要があります。開発環境でターミナルを開き、次のコマンドを実行して、正しくインストールされているかどうかを確認します。
$ docker --version $ docker-compose --version
対応するバージョン情報が返された場合、Docker と Docker Compose は正常にインストールされています。次に、新しいプロジェクト ディレクトリを作成し、その中に docker-compose.yml ファイルを作成します。
$ mkdir my-php-cluster $ cd my-php-cluster $ touch docker-compose.yml
パート 2: Docker Compose ファイルの作成
次に、docker-compose.yml ファイルでアプリケーション クラスターの構成を定義します。この構成には、PHP、Nginx、および MariaDB のサービス定義が含まれます。基本的な docker-compose.yml ファイルの例を次に示します。
version: '3' services: php: build: context: . dockerfile: Dockerfile.php restart: always ports: - "8000:80" nginx: build: context: . dockerfile: Dockerfile.nginx restart: always ports: - "80:80" depends_on: - php db: image: mariadb command: --default-authentication-plugin=mysql_native_password restart: always ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: secret
この例では、php、nginx、db の 3 つのサービスを定義します。 php サービスは、PHP を含む Docker イメージを構築し、ポートをホストのポート 8000 にマップします。 nginx サービスは、Nginx を含む Docker イメージを構築し、ポートをホストのポート 80 にマップします。 db サービスは、MariaDB によって公式に提供される Docker イメージを使用し、ポートをホストの 3306 ポートにマップします。最後に、root パスワードを設定するための db サービスの環境変数も指定します。
パート 3: Dockerfile の作成
イメージを正常に構築するには、Dockerfile も作成する必要があります。
まず、Dockerfile.php という名前のファイルを作成し、次の内容をファイルにコピーします。
FROM php:7.4-fpm WORKDIR /var/www/html RUN apt-get update && apt-get install -y libzip-dev zip unzip && docker-php-ext-install zip COPY . . RUN composer install --no-dev
この Dockerfile は、基本イメージとして公式の PHP 7.4 FPM イメージを使用し、追加の依存関係もいくつか使用します。 RUN コマンド経由でインストールされます。次に、アプリケーション ディレクトリ全体をコンテナの /var/www/html ディレクトリにコピーし、composer install コマンドを実行して PHP の依存関係をインストールしました。
次に、Dockerfile.nginx という名前のファイルを作成し、次の内容をファイルにコピーします。
FROM nginx:latest COPY nginx.conf /etc/nginx/nginx.conf
この Dockerfile は、最新の Nginx 公式イメージをベース イメージとして使用し、カスタマイズされた nginx をコピーします。 .conf ファイルをコンテナの /etc/nginx/ ディレクトリにコピーします。
パート 4: Nginx 構成ファイルを作成する
Dockerfile では、nginx.conf という名前の構成ファイルについて説明しました。次に、nginx.conf というファイルを作成し、次の内容をファイルにコピーします。
events {} http { upstream php { server php:9000; } server { listen 80; location / { proxy_pass http://php; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } }
この nginx.conf 構成ファイルは、php サービスの 9000 ポートへのリクエストをプロキシする php という名前のアップストリーム サーバーを定義します。 。次に、ポート 80 でリッスンし、すべてのリクエストを PHP アップストリーム サーバーにプロキシするサーバー ブロックを定義しました。
パート 5: アプリケーション クラスターの実行
すべての構成が完了したので、docker-compose up コマンドを実行してアプリケーション クラスターを開始できます。
ターミナルで、プロジェクト ディレクトリに入り、次のコマンドを実行します。
$ docker-compose up -d
上記のコマンドは、バックグラウンドでアプリケーション クラスターを起動します。すべてのサービスが正常に開始されるまで、しばらくお待ちください。
パート 6: アプリケーション クラスターのテスト
アプリケーション クラスターが正常に起動したら、ブラウザーから http://localhost にアクセスしてテストできます。
ブラウザに http://localhost と入力し、Enter キーを押します。すべてが正常であれば、アプリケーションが実行されていることが確認できるはずです。
パート 7: アプリケーション クラスターのスケーリング
Docker Compose のスケール機能を使用すると、アプリケーション クラスターを簡単にスケーリングできます。
php サービスのインスタンスの数を増やしたいとします。次のコマンドを実行できます:
$ docker-compose up -d --scale php=3
上記のコマンドは、アプリケーション クラスターの水平方向の拡張を実現するために 3 つの php インスタンスを開始します。 。
結論:
Docker Compose、Nginx、MariaDB を使用すると、スケーラブルな PHP アプリケーション クラスターを簡単に構築できます。この記事では、開始するための基本的な例と詳細なコード例を示します。この記事が役に立ち、より強力なアプリケーション クラスターを構築するきっかけになったことを願っています。
以上がDocker Compose、Nginx、MariaDB を使用してスケーラブルな PHP アプリケーション クラスターを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。