Docker Compose、Nginx、MariaDB を使用してスケーラブルな PHP アプリケーション クラスターを構築する
Docker Compose、Nginx、MariaDB を使用してスケーラブルな PHP アプリケーション クラスターを構築する
はじめに:
最新のアプリケーション開発では、スケーラブルなアプリケーションを構築する プログラムのクラスタリングは非常に重要です。 Docker Compose、Nginx、MariaDB を使用すると、アプリケーションに高可用性と柔軟性を提供するスケーラブルな PHP アプリケーション クラスターを簡単に構築できます。この記事では、これらのツールを使用して、シンプルかつ強力な PHP アプリケーションのクラスターを構築する方法を検討し、具体的なコード例を示します。
パート 1: 環境セットアップ
始める前に、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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop< container_name>コマンドを使用するDocker Kill< container_name>ホストターミナルのコマンド(フォース出口)

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]< Container Path> <ホストパス>。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop< container_id>);コンテナを起動します(docker start< container_id>);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

国内のミラーソースに切り替えることができます。手順は次のとおりです。1。構成ファイル/etc/docker/daemon.jsonを編集し、ミラーソースアドレスを追加します。 2。保存して終了した後、Docker Service Sudo SystemCtlを再起動してDockerを再起動して、画像のダウンロード速度と安定性を改善します。
