Nginxは、大規模なWebサイトアーキテクチャで広く使用されている高性能のオープンソースWebサーバーとリバースプロキシサーバーです。システムの安定した操作とパフォーマンスの最適化を確保するために、通常、Webサービスの要求ログを記録および分析する必要があります。この記事では、Nginx Proxyサーバーを介して要求ログを記録および分析する方法と、いくつかの一般的なツールを介してログ分析を実行する方法を詳細に紹介します。
まず、NGINX構成ファイルでリクエストロギング機能を有効にする必要があります。 nginx構成ファイル `/etc/nginx/nginx.conf`を開き、HTTPブロックに次の構成を追加します。
http { ... log_format main '$ remote_addr -$ remote_user [$ time_local] "$ request"' '$ status $ body_bytes_sent "$ http_referer"' '"$ http_user_agent" "$ http_x_forwarded_for"'; Access_log /var/log/nginx/access.log main; ... }
上記の構成では、 `log_format`命令を使用して、クライアントIP、要求時間、要求方法、ステータスコードなどの一般的な情報を含むログ形式メインを定義します。
次に、Nginxの逆プロキシ関数を構成して、バックエンドWebサービスへのリクエストをプロキシをプロキシする必要があります。 nginx構成ファイルを開き、サーバーブロックに次の構成を追加します。
サーバー{ ... 位置 / { proxy_pass http:// backend; proxy_set_headerホスト$ host; proxy_set_header x-real-ip $ remote_addr; ... } ... }
この構成では、場所/`は、すべてのリクエストがバックエンドWebサービスにプロキシ化されることを意味します(たとえば、` http:// backend`)。 `proxy_set_header`は、ホストやX-Real-IPなどの要求ヘッダーを設定して、バックエンドサーバーが正しい要求情報を受信するようにします。
リクエストログを分析するために、「awk」、「grep」、 `sort`などのコマンドラインツールを使用してログ統計を実行できます。特定の時間範囲で異なるIPSへの訪問数をカウントする簡単な例を次に示します。
$ awk -v from = "2022-01-01 00:00:00:00" -v to = "2022-01-01 23:59:59" \ '$ 4> = && $ 4 <= to {print $ 1}' /var/log/nginx/access.log | \ ソート| uniq -c | sort -rn
このコマンドでは、「awk」を使用して、時間範囲に基づいてログをフィルタリングし、IP情報を抽出します。次に、IPアドレスは「sort」を使用してソートされ、「uniq -c」はIPあたりの訪問数をカウントするために使用され、最後に `sort -rn`は訪問数に従って降順で並べ替えられます。
上記の手順を通じて、nginxプロキシサーバーのWeb要求ロギングおよび分析機能を正常に実装できます。 Nginxのロギングと逆プロキシ関数を合理的に構成することにより、ログ分析ツールと組み合わせて、Webサービスのパフォーマンスをより適切に監視および最適化できます。この記事を通して、Webサービスをより効率的に管理および最適化するために、Nginxログの構成と分析スキルを習得できることを願っています。