目次
パート 1: 環境セットアップ
ホームページ バックエンド開発 PHPチュートリアル Docker Compose、Nginx、MariaDB を使用してスケーラブルな PHP アプリケーション クラスターを構築する

Docker Compose、Nginx、MariaDB を使用してスケーラブルな PHP アプリケーション クラスターを構築する

Oct 12, 2023 pm 01:39 PM
docker nginx mariadb

使用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 サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Dockerによってコンテナを出る方法 Dockerによってコンテナを出る方法 Apr 15, 2025 pm 12:15 PM

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

Dockerのファイルを外部にコピーする方法 Dockerのファイルを外部にコピーする方法 Apr 15, 2025 pm 12:12 PM

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

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

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

Dockerを再起動する方法 Dockerを再起動する方法 Apr 15, 2025 pm 12:06 PM

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

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

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

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

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

Dockerプロセスを表示する方法 Dockerプロセスを表示する方法 Apr 15, 2025 am 11:48 AM

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

中国のDocker画像ソースを変更する方法 中国のDocker画像ソースを変更する方法 Apr 15, 2025 am 11:30 AM

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

See all articles