YTsudaのブログ

1985生まれ、男。東京で働くWeb制作者

Nginx設定ファイルをデバッグするため、任意の変数をログに出力する方法

Nginxの設定ファイルでは変数やif文を使用できる。
その変数をデバッグしたい時にログに出力する方法のメモ。

新しいログフォーマットを作る

/etc/nginx/nginx.confの httpブロック内に log_formatの設定を追加する。

http{
    log_format debug_val_format "$debug_val";
    ...
}

※注
include /etc/nginx/sites-enabled/*; よりも前に追加すること

ログを出力する

/etc/nginx/sites-available ディレクトリにある目的の設定ファイルで、 serverブロックに以下の設定を追加する。

$hogehogeという変数を確認したい時の例。

server{
    ...
    set $debug_val "$hogehoge";
    access_log /var/log/nginx/debug_val.log debug_val_format;
    ...
}

ログの確認

設定後 force_reload。 サイトにアクセスすると /var/log/nginx/debug_val.log に $hogehoge の内容が書きだされる。

もっと楽な方法がありそうな気はする。 httpヘッダーに出してしまうとか。

参考

Log - Nginx http://wiki.nginx.org/HttpLogModule