空ファイルを作成しておく
まず /var/log/nginx/debug_val.log
を空ファイルで作成しておきます。
nginx.confの書き方
以下のように、httpディレクティブにlog_format フォーマット名 "フォーマット内容";
として、フォーマットを定義します。
serverディレクティブに、access_log ログファイルのパス どのフォーマットで出力するか;
を記述します。
http { 〜略〜 # debug用のログフォーマットを定義 log_format debug_val_format "host[$host] http_origin[$http_origin]"; 〜略〜 server { 〜略〜 # debug用のlogファイルの設定 access_log /var/log/nginx/debug_val.log debug_val_format; 〜略〜 } }
出力結果
以下のような感じで出力されます。
http_origin[api.example.com] remote_addr[192.168.xx.xx]
nginx.confで参照できる変数
以下のページが参考になります。
おわりに
今回の例では、$host
と$http_origin
を出力していますが、自分で定義した変数や、$http_xxxxx
としてリクエストヘッダー内の任意の値、$cookie_xxxxxとしてcookie内の任意の値を出力したり、ifディレクティブで判定に使用することができます。
xxxxx
の部分はキーが小文字で入ります。