Docker Compose、Nginx、MariaDB を使用して高可用性 PHP アプリケーション クラスターを構築する
はじめに:
インターネットの普及に伴い、Web アプリケーション開発もそして展開はより複雑になります。 Web アプリケーションの可用性とスケーラビリティを向上させるために、多くの開発者はコンテナ化テクノロジーを使用して高可用性アプリケーション クラスターを構築し始めています。この記事では、Docker Compose、Nginx、MariaDB を使用して高可用性 PHP アプリケーション クラスターを構築する方法を紹介し、具体的なコード例を示します。
1. Docker と Docker Compose をインストールする
始める前に、Docker と Docker Compose をインストールする必要があります。 Docker はコンテナの作成と管理に使用できるコンテナ化テクノロジであり、Docker Compose はマルチコンテナ Docker アプリケーションを定義して実行するためのツールです。
まず、Docker をインストールする必要があります。 Docker 公式 Web サイトでオペレーティング システム用のインストール パッケージを見つけ、公式の手順に従ってインストールできます。
インストールが完了したら、ターミナルを開いて次のコマンドを実行して、Docker が正常にインストールされているかどうかを確認できます:
docker --version
次に、Docker Compose をインストールする必要があります。最新バージョンのバイナリを Docker Compose GitHub リポジトリからダウンロードし、システム ディレクトリに配置できます。
インストールが完了したら、次のコマンドを実行して、Docker Compose が正常にインストールされているかどうかを確認できます。
docker-compose --version
上記のコマンドが正常に実行された場合、Docker と Docker Compose は正常にインストールされています。
2. Docker Compose ファイルの作成
次に、PHP アプリケーション クラスターを定義するために、docker-compose.yml という名前のファイルを作成する必要があります。以下は基本的な例です:
version: '3' services: web: image: nginx:latest ports: - 80:80 volumes: - ./src:/var/www/html - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - php php: image: php:7.4-fpm volumes: - ./src:/var/www/html db: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=secret volumes: - ./data:/var/lib/mysql
上の例では、web、php、db の 3 つのサービスを定義しました。 Web サービスは、Nginx をリバース プロキシ サーバーとして使用し、php サービスで実行されている PHP アプリケーションにトラフィックを転送します。 php サービスは、PHP インタープリターとして PHP-FPM を使用し、アプリケーション コードをコンテナーの /var/www/html ディレクトリにマウントします。 db サービスは MariaDB をデータベース サーバーとして使用し、データ ストレージ ディレクトリをマウントします。
3. Nginx 設定ファイルの作成
Nginx サーバーを設定するには、nginx.conf という名前のファイルを作成する必要があります。以下は基本的な例です:
worker_processes auto; events { worker_connections 1024; } http { server { listen 80; server_name localhost; location / { proxy_pass http://php; proxy_set_header Host $host; } } }
上の例では、ポート 80 でリッスンし、トラフィックを php サービスにプロキシする単純な Nginx サーバーを定義しました。
4. PHP アプリケーションの作成
クラスターが適切に動作しているかどうかをテストするために、単純な PHP アプリケーションを作成する必要があります。以下は基本的な例です:
<?php $servername = "db"; $username = "root"; $password = "secret"; $dbname = "mydb"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully to MariaDB server"; $conn->close(); ?>
上の例では、mydb という名前のデータベースを作成し、root ユーザーとシークレット パスワードを使用して MariaDB サーバーに接続しました。接続に成功すると「MariaDB サーバーに正常に接続されました」と出力されます。
5. アプリケーション クラスターの開始
ターミナルで docker-compose.yml ファイルがあるディレクトリに移動し、次のコマンドを実行してアプリケーション クラスターを開始します:
docker-compose up -d
このコマンドは、必要なイメージをダウンロードして開始し、コンテナーを作成して実行します。
6. アプリケーション クラスターのテスト
ブラウザーで http://localhost にアクセスすると、「MariaDB サーバーに正常に接続されました」という出力が表示されるはずです。これは、PHP アプリケーションが正常に動作していることを示しています。プログラムは MariaDB データベースに正常に接続しました。
7. アプリケーション クラスターの拡張と管理
docker-compose.yml ファイルを変更し、再度 docker-compose up -d コマンドを実行することで、アプリケーション クラスターを簡単に拡張および管理できます。 Web、php、db サービスのインスタンスの数を増減したり、必要に応じて構成を変更したりできます。
概要:
この記事では、Docker Compose、Nginx、MariaDB を使用して高可用性 PHP アプリケーション クラスターを構築する方法を紹介します。 Docker Compose を介して Nginx、PHP、MariaDB で構成されるマルチコンテナ アプリケーションを定義し、具体的なコード例を示しました。このクラスターを使用すると、アプリケーションを簡単に拡張および管理し、可用性と拡張性を向上させることができます。この記事が、可用性の高い PHP アプリケーション クラスターを構築する方法を理解するのに役立つことを願っています。
以上がDocker Compose、Nginx、MariaDB を使用して高可用性 PHP アプリケーション クラスターを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。