ホームページ  >  記事  >  バックエンド開発  >  Docker Compose、Nginx、MariaDB のベスト プラクティス: デプロイされた PHP アプリケーションの監視と最適化

Docker Compose、Nginx、MariaDB のベスト プラクティス: デプロイされた PHP アプリケーションの監視と最適化

WBOY
WBOYオリジナル
2023-10-12 14:19:44593ブラウズ

Docker Compose、Nginx和MariaDB的最佳实践:部署PHP应用程序的监控与优化

Docker Compose、Nginx、MariaDB のベスト プラクティス: デプロイされた PHP アプリケーションの監視と最適化

はじめに:
現代のアプリケーション開発では、コンテナーの変換が行われています。これは、アプリケーションの管理と展開を改善するのに役立つ一般的な方法です。 Docker Compose は、複数のコンテナを定義して実行するためのツールであり、アプリケーションのデプロイと管理のプロセスを簡素化します。この記事では、Docker Compose を Nginx および MariaDB と組み合わせて使用​​して、PHP アプリケーションをデプロイおよび最適化する方法を紹介し、具体的なコード例を示します。

  1. 準備作業:
    始める前に、Docker と Docker Compose がインストールされていることを確認し、PHP イメージを取得します。
  2. Docker Compose ファイルの作成:
    docker-compose.yml という名前のファイルを作成し、そのファイル内でコンテナーの構成を定義します。以下に例を示します:
version: '3'
services:
  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - php
  php:
    image: php:7.4-fpm
    volumes:
      - ./php.ini:/usr/local/etc/php/php.ini
      - ./app:/var/www/html
    depends_on:
      - mariadb
  mariadb:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    volumes:
      - ./data:/var/lib/mysql

この例では、nginx、php、mariadb の 3 つのサービスを定義します。 nginx サービスはホストのポート 80 をリッスンし、リクエストを処理のために php サービスに転送します。 php サービスは php:7.4-fpm イメージを使用し、php.ini およびアプリケーション ファイル ディレクトリをマウントします。 mariadb サービスは、mariadb ミラーを使用し、データベースの root パスワードを設定し、データ ディレクトリをマウントします。

  1. Nginx の構成:
    前のステップでは、Nginx サービスを定義し、nginx.conf という名前の構成ファイルをマウントしました。このファイルをホスト マシン上に作成し、そのファイル内で構成する必要があります。以下は、簡単な nginx.conf 構成例です。
worker_processes auto;
events {
    worker_connections 1024;
}
http {
    # 其他配置项省略
    server {
        listen 80;
        server_name localhost;
        root /var/www/html;
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }
        location ~ .php$ {
            fastcgi_pass php:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
}

この例では、Nginx ワーカー プロセスの数、イベント接続の数、および http サービスを構成します。サーバー ブロックでは、ポート 80 をリッスンし、ルート ディレクトリを設定し、PHP スクリプトを処理するメソッドを定義しました。 fastcgi_pass ディレクティブを PHP サービスのコンテナー アドレスに変更することに注意してください。

  1. MariaDB の構成:
    前のステップで、MariaDB サービスを定義し、root パスワードを設定しました。アプリケーションでデータベースに接続するときは、正しいアドレスとパスワードを使用する必要があります。以下は、MariaDB に接続するための PHP コードの例です。
<?php
$host = 'mariadb';
$user = 'root';
$password = '123456';
$database = 'mydb';

$conn = new mysqli($host, $user, $password, $database);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

echo "Connected successfully";

$conn->close();
?>

この例では、ホスト名として mariadb を使用し、前に定義した root パスワードを使用しました。

  1. コンテナを開始します:
    上記の構成が完了したら、次のコマンドを使用してコンテナを開始できます:
docker-compose up -d

このコマンドは、定義されているすべてのサービスを開始しますバックグラウンドで実行されます。

  1. モニタリングと最適化:
    Docker Compose を通じて PHP アプリケーションをデプロイした後、モニタリングと最適化も非常に重要な部分です。一般的に使用される監視および最適化方法は次のとおりです。
  • docker stats コマンドを使用して、各コンテナーのリソース使用状況を確認すると、異常やパフォーマンスを見つけることができます。時間のボトルネック。
  • docker-compose logs コマンドを使用してコンテナーのログ情報を表示し、エラーや問題をすばやく見つけます。
  • Prometheus や Grafana などの監視ツールを使用して、アプリケーションのパフォーマンス指標を収集して表示し、タイムリーな対策を講じることができます。
  • PHP アプリケーションを最適化するには、キャッシュ メカニズムの使用、データベース クエリの最適化、PHP 構成パラメーターの調整などの方法を検討できます。

結論:
この記事では、Docker Compose、Nginx、MariaDB を使用して PHP アプリケーションをデプロイおよび最適化する方法を、具体的なコード例を挙げて紹介します。コンテナ化された展開により、アプリケーションの管理と拡張が容易になり、監視と最適化を通じてアプリケーションのパフォーマンスと安定性が向上します。この記事が PHP アプリケーションをデプロイする際のお役に立てれば幸いです。

以上がDocker Compose、Nginx、MariaDB のベスト プラクティス: デプロイされた PHP アプリケーションの監視と最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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