ホームページ  >  記事  >  バックエンド開発  >  Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションの水平スケーリング

Docker Compose、Nginx、MariaDB を使用した PHP アプリケーションの水平スケーリング

WBOY
WBOYオリジナル
2023-10-12 11:22:561360ブラウズ

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的水平扩展

Docker Compose、Nginx、MariaDB による PHP アプリケーションの水平拡張

インターネットが発展し、アプリケーションが複雑になるにつれて、アプリケーションを効率的に拡張する方法は、プログラムのパフォーマンスが重要になります。重要な課題。水平スケーリングは、サーバー インスタンスを追加することでアプリケーションの処理能力を向上させるソリューションです。この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションの水平スケーリングを実現する方法と、具体的なコード例を紹介します。

環境の準備:
始める前に、Docker と Docker Compose がインストールされたマシンなど、いくつかの環境を準備する必要があります。これらのツールをまだインストールしていない場合は、公式 Web サイトで関連するインストール ガイドを見つけることができます。

ステップ 1: Docker Compose ファイルを作成する
まず、docker-compose.yml という名前のファイルを作成し、その中にサービスを定義します。サンプル構成ファイルの内容は次のとおりです。

version: '3.7'
services:
  web:
    build: ./web
    ports:
      - 80:80
    networks:
      - app-net
    depends_on:
      - db
  db:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=your_password
    networks:
      - app-net
networks:
  app-net:

上の例では、web と db という 2 つのサービスを定義しました。 Web サービスは Nginx および PHP アプリケーションの実行に使用され、db サービスは MariaDB データベースの実行に使用されます。

ステップ 2: Nginx および PHP アプリケーション用の Dockerfile を作成する
前のステップでは、Web サービスのビルド パスを ./web として指定しました。ここで、Nginx および PHP アプリケーションのイメージを構築するために、このディレクトリに Dockerfile を作成する必要があります。以下は簡単な Dockerfile の例です:

FROM nginx:latest

# 安装PHP和一些扩展
RUN apt-get update && 
    apt-get install -y php7.4-cli php7.4-fpm php7.4-mysql

# 复制PHP应用程序到容器中
COPY app /var/www/html

# 配置Nginx
COPY nginx.conf /etc/nginx/nginx.conf

# 启动Nginx和PHP-FPM
CMD service php7.4-fpm start && nginx -g "daemon off;"

上の例では、nginx:latest をベース イメージとして使用し、その中に PHP といくつかの一般的な拡張機能をインストールします。次に、PHP アプリケーションをコンテナーにコピーし、カスタマイズした nginx.conf ファイルをコピーしました。

ステップ 3: Nginx 構成ファイルを作成する
前のステップの Dockerfile では、カスタマイズされた nginx.conf ファイルを使用しました。次に、このファイルを ./web ディレクトリに作成し、Nginx 構成を定義する必要があります。以下は、nginx.conf ファイルの例の内容です。

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen  80;
        server_name  localhost;
        root  /var/www/html;
        index  index.php index.html;

        location ~ .php$ {
            fastcgi_pass  web:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include  fastcgi_params;
        }

        location / {
            try_files  $uri $uri/ /index.php?$query_string;
        }
    }
}

上の例では、Nginx の仮想ホストを定義し、リクエストを web という名前の PHP-FPM コンテナに転送します。

ステップ 4: PHP アプリケーションを作成する
前のステップの nginx.conf 構成ファイルで、PHP アプリケーションのルート ディレクトリを /var/www/html として指定しました。ここで、./web ディレクトリの下に app という名前のフォルダーを作成し、その中に PHP アプリケーションのコードを入れる必要があります。

ステップ 5: コンテナ クラスターを開始する
上記の準備が完了したら、コンテナ クラスターを開始できます。ターミナルで、docker-compose.yml が存在するディレクトリに入り、次のコマンドを実行します。

docker-compose up -d

このコマンドは、Web サービスと DB サービスを開始し、ネットワーク内の app-net に接続します。 Web サービスは、ホスト マシンのポート 80 をバインドして、外部からの HTTP リクエストを受信します。

これまでのところ、私たちは Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションの水平拡張を実現することに成功しています。ここで、次のコマンドを使用してアプリケーションを展開できます。

docker-compose up --scale web=n

ここで、n は展開する Web サービス インスタンスの数です。

概要:
この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションの水平拡張を実現する方法を紹介し、具体的なコード例を示します。これらのツールを使用すると、増大するユーザー ニーズに合わせてアプリケーションのパフォーマンスを迅速かつ簡単に拡張できます。この記事が実践中の皆様のお役に立てれば幸いです。

以上がDocker Compose、Nginx、MariaDB を使用した PHP アプリケーションの水平スケーリングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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