0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NGINXでリクエストヘッダーをログに記録する方法

Posted at

NGINXでリクエストヘッダーをログに出力するには、カスタムログフォーマットを設定し、特定のリクエストヘッダーをログに含めるように設定します。以下に手順を説明します。


手順

1. nginx.conf にカスタムログフォーマットを追加

nginx.conf ファイルを編集して、log_format ディレクティブでカスタムフォーマットを定義します。例として、X-Custom-Header ヘッダーをログに記録する場合は次のように設定します。

http { log_format custom '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_x_custom_header" "$http_user_agent"'; access_log /var/log/nginx/access.log custom; }

  • $http_x_custom_header: リクエストヘッダー X-Custom-Header の値を取得します。
  • 他のヘッダーを記録したい場合は、$http_ヘッダー名 の形式で記述します(ヘッダー名は小文字で記述し、ハイフンはアンダースコア _ に置き換えます)。

2. サーバーブロックでログフォーマットを有効化

すべてのサーバーブロックまたは特定のサーバーブロックに以下を追加します。

server {
  ...
  access_log /var/log/nginx/access.log custom;
  ...
}

3. NGINX をリロード

設定を保存したら、以下のコマンドでNGINXを再読み込みします。

sudo nginx -t # 設定ファイルのテスト
sudo systemctl reload nginx # NGINXを再読み込み

例: ログ出力の例

例えば、リクエストヘッダーに以下が含まれていた場合:

X-Custom-Header: TestValue User-Agent: curl/7.68.0

ログには次のように出力されます:

127.0.0.1 - - [20/Nov/2024:12:34:56 +0000] "GET / HTTP/1.1" 200 612 "TestValue" "curl/7.68.0"


注意点

  1. セキュリティ: ログにセンシティブな情報(認証トークンやパスワードなど)を含めないよう注意してください。
  2. ログの管理: ヘッダーを多く記録するとログが膨大になる可能性があるため、ログローテーションやストレージの管理も考慮してください。

必要に応じて他のヘッダーもログに出力できるよう設定を拡張してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?