Docker Compose、Nginx、MariaDB を通じて PHP アプリケーションを監視および追跡する
Docker Compose、Nginx、MariaDB による PHP アプリケーションの監視と追跡
クラウド コンピューティングとコンテナ テクノロジーの発展に伴い、Docker へのデプロイを開始するアプリケーションがますます増えています。容器。この場合、アプリケーションをどのように監視および追跡するかが重要な問題になります。この記事では、Docker Compose、Nginx、MariaDB を通じて PHP アプリケーションを監視および追跡する方法を紹介し、具体的なコード例を示します。
1. 準備
開始する前に、次の環境を準備する必要があります:
- Docker: Docker がインストールされ、正常に実行できることを確認します。
- Docker Compose: Docker Compose がインストールされ、適切に実行されていることを確認してください。
- Nginx: プロキシと負荷分散リクエストに使用されます。
- MariaDB: アプリケーション データの保存に使用されます。
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 アプリケーションの監視と追跡を実装するには、次のような一般的なツールを使用できます:
- Prometheus: 使用監視メトリクス データを収集して保存します。
- Grafana: モニタリング指標データを視覚化するために使用されます。
- Zipkin: アプリケーション内のリクエストを追跡するために使用されます。
具体的な構成手順はこの記事の範囲を超えていますが、構成については次のサンプル コードを参照できます。
次のサービスを 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']デフォルトのユーザー名とパスワードを使用して、ブラウザで http://localhost:3000 を開きます ( admin/ admin) を使用して Grafana にログインし、Prometheus データ ソースを構成し、モニタリング メトリック データを視覚化するためのダッシュボードを作成します。 Zipkin の設定については、公式ドキュメントと関連サンプルコードを参照して完了してください。 概要Docker Compose、Nginx、MariaDB を通じて、PHP アプリケーションの監視および追跡環境を簡単に構築できます。 Prometheus と Grafana を構成することで、アプリケーション監視指標データを収集して視覚化できます。 Zipkin を構成すると、アプリケーション内のリクエストを追跡できます。上記は簡単な例であり、実際のニーズや環境に応じてカスタマイズおよび調整できます。この記事がお役に立てば幸いです!
以上がDocker Compose、Nginx、MariaDB を通じて PHP アプリケーションを監視および追跡するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック









