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

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

王林
王林オリジナル
2023-10-12 11:15:411297ブラウズ

使用Docker Compose、Nginx和MariaDB构建可伸缩的PHP应用程序架构

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

はじめに:
クラウド コンピューティングと仮想化テクノロジーの発展に伴い、コンテナーの使用が増加しています。現在、アプリケーションを構築および管理するための主流のソリューションの 1 つとなっています。従来のアプリケーションの展開では、アプリケーション環境の構成と管理は面倒で、エラーが発生しやすいことがよくあります。コンテナ化テクノロジを使用すると、アプリケーションとアプリケーションが依存する環境をパッケージ化できるため、アプリケーションの展開と管理のプロセスが簡素化されます。

この記事では、Docker Compose、Nginx、MariaDB の 3 つのツールを使用してスケーラブルな PHP アプリケーション アーキテクチャを構築する方法を紹介し、具体的なコード例を示します。この記事の紹介を通じて、読者がこれらのツールを使用して安定したスケーラブルなアプリケーション環境を構築する方法を理解できることを願っています。

1. Docker Compose の基本概念
Docker Compose は、複数コンテナーの Docker アプリケーションを定義および管理するためのツールです。別の yaml ファイルを通じて、コンテナー イメージ、環境変数、ネットワーク構成などを含むアプリケーションのさまざまなコンポーネントを定義できます。

以下は、基本的な Docker Compose ファイルの例です:

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./app:/usr/share/nginx/html
    links:
      - php
  php:
    image: php:fpm
    volumes:
      - ./app:/var/www/html
  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=myapp
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword

上の例では、web、php、db の 3 つのサービスを定義しました。 Web サービスは最新の Nginx イメージを使用し、コンテナーのポート 80 を公開し、外部ポート 80 をコンテナーのポート 80 にマッピングします。同時に、ホスト上のファイルとコンテナ内のファイルを同期できるように、./app ディレクトリをコンテナの /usr/share/nginx/html ディレクトリにマウントしました。 php サービスは、公式の PHP-FPM イメージを使用し、./app ディレクトリをコンテナの /var/www/html ディレクトリにマウントします。 db サービスは最新の MariaDB イメージを使用し、データベースを構成するためのいくつかの環境変数を設定します。

2. Nginx と PHP の統合
Docker ベースのアプリケーション アーキテクチャでは、Nginx は通常、静的ファイル リクエストを Nginx サーバーに転送し、動的リクエストを PHP-FPM サーバー ハンドルに転送するリバース プロキシ サーバーとして使用されます。それ。以下は Nginx の設定例です:

server {
    listen 80;
    server_name example.com;

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

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

上の例では、まずサーバー ブロックを定義し、ポート 80 をリッスンして、server_name を設定します。次に、location ディレクティブを使用して、リクエスト転送ルールを構成します。リクエストされた URI が .php で終わる場合、リクエストは php サービスのポート 9000 に転送され、リクエストされたファイル名が SCRIPT_FILENAME パラメータとして PHP-FPM サーバーに渡されます。

3. MariaDB 構成
スケーラブルなアプリケーション アーキテクチャを構築する場合、データベースのスケーラビリティも非常に重要です。 Docker アーキテクチャでは、MariaDB イメージを使用してデータベース インスタンスを迅速にデプロイし、構成できます。

Docker Compose ファイルの上記の例では、最新の MariaDB イメージを使用し、データベースを構成するためにいくつかの環境変数を設定しました。これらの環境変数を使用して、root パスワード、データベース名、ユーザー名、およびデータベースのパスワードを設定できます。

4. Docker Compose を使用してアプリケーションを構築および管理する
上記の構成ファイルを使用すると、Docker Compose コマンドを使用してアプリケーションを構築および管理できます。一般的に使用される Docker Compose コマンドの一部を次に示します。

  • アプリケーションの開始:

    docker-compose up -d
  • アプリケーションを閉じる:

    docker-compose down
  • アプリケーションのログを表示します:

    docker-compose logs
  • アプリケーションのステータスを表示します:

    docker-compose ps

これらのコマンドを通じて、アプリケーションを簡単に構築、起動、管理できるので便利です。

5. 概要
この記事では、Docker Compose、Nginx、MariaDB を使用してスケーラブルな PHP アプリケーション アーキテクチャを構築する方法を紹介し、具体的なコード例を示します。これらのツールを使用すると、アプリケーションの導入と管理のプロセスを簡素化し、アプリケーションのスケーラビリティを実現できます。

この記事で提供されている例はデモンストレーションのみを目的としており、実際の運用環境とは多少異なる場合があることに注意してください。実際の展開プロセスでは、実際の状況に基づいて調整と最適化を行う必要があります。

この記事の導入を通じて、読者が Docker Compose、Nginx、MariaDB を使用してスケーラブルな PHP アプリケーション アーキテクチャを構築することについての基本的な理解を深め、これらのテクノロジを実際に適用して独自のアプリケーションを構築できるようになることを願っています。アプリケーションです。

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

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