Docker Compose、Nginx、MariaDB による PHP アプリケーションの監視と追跡
クラウド コンピューティングとコンテナ テクノロジーの発展に伴い、Docker へのデプロイを開始するアプリケーションがますます増えています。容器。この場合、アプリケーションをどのように監視および追跡するかが重要な問題になります。この記事では、Docker Compose、Nginx、MariaDB を通じて PHP アプリケーションを監視および追跡する方法を紹介し、具体的なコード例を示します。
1. 準備
開始する前に、次の環境を準備する必要があります:
2. Docker Compose ファイルの作成
任意のディレクトリに docker-compose.yml という名前のファイルを作成します。ファイルの内容は次のとおりです:
version: '3' services: web: build: . ports: - "80:80" db: image: mariadb environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=test_db volumes: - ./data:/var/lib/mysql
上記のファイルでは、2 つのサービスを作成しました。1 つは Web サービス、もう 1 つは DB サービスです。 Web サービスはアプリケーションのイメージを構築し、ポート 80 をホストにマップします。 db サービスは mariadb イメージを使用し、root パスワードとデータベース名を指定して、データをホストの ./data ディレクトリに保存します。
3. Nginx 設定ファイルの作成
docker-compose.yml と同じディレクトリに nginx.conf という名前のファイルを作成します。ファイルの内容は次のとおりです:
worker_processes 1; events { worker_connections 1024; } http { server { listen 80; server_name localhost; location / { proxy_pass http://web; } } }
In 上記のファイルでは、ポート 80 でリッスンし、リクエストを web という名前の Docker サービスに転送するように Nginx を構成しました。
4. PHP アプリケーション コードの作成
docker-compose.yml と同じディレクトリに、index.php という名前のファイルを作成します。ファイルの内容は次のとおりです:
<?php $dbhost = 'db'; $dbuser = 'root'; $dbpass = 'root'; $dbname = 'test_db'; $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname); if($conn->connect_error) { die("连接失败:" . $conn->connect_error); } echo "连接成功"; $conn->close(); ?>
上記のファイルでは、mysqli 拡張機能を介して MariaDB データベースに接続し、接続成功のメッセージを出力します。
5. ビルドと実行
ターミナルで docker-compose.yml と同じディレクトリに移動し、次のコマンドを実行してコンテナーをビルドして実行します:
$ docker-compose build $ docker-compose up -d
参照 サーバーで http://localhost を開くと、接続成功のメッセージが表示されるはずです。
6. 監視と追跡
PHP アプリケーションの監視と追跡を実装するには、次のような一般的なツールを使用できます:
具体的な構成手順はこの記事の範囲を超えていますが、構成については次のサンプル コードを参照できます。
次のサービスを docker-compose.yml に追加します。
prometheus: image: prom/prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml ports: - "9090:9090" grafana: image: grafana/grafana volumes: - ./grafana-data:/var/lib/grafana ports: - "3000:3000"
次の内容を含む prometheus.yml という名前のファイルを docker-compose.yml と同じディレクトリに作成します。
上記のファイルでは、Web サービス上のインジケーター データを定期的に収集するように Prometheus を構成しました。 次のコマンドを実行してコンテナを再構築して実行し、Prometheus と Grafana を起動します。global: scrape_interval: 15s scrape_configs: - job_name: 'php-app' static_configs: - targets: ['web:80']
以上がDocker Compose、Nginx、MariaDB を通じて PHP アプリケーションを監視および追跡するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。