こんにちは、鯨井貴博@opensourcetechです。
今回は、Nginxのコンパイルオプションにて「--with-debug」オプションを使用して、より詳細はログが取得出来るようにしようと思います。
ソフトウェアのインストールとしては、ソースパッケージからコンパイルを行います。
「--with-debug」オプションは、デフォルトでは含まれない為です。
基本的なインストール方法については、
ここなどを参照していただければいいかと思います。
ソースパッケージのダウンロード・解凍、必要ソフトウェアの事前インストールが出来たら、コンパイルを実施します。
./configure --with-debug
そして、make・make installの後にインストール確認を行います。
/usr/local/nginx/sbin/nginx -v
/usr/local/nginx/sbin/nginx -V
これで、コンパイルオプションがきちんと含まれているか確認出来ます。
そして、nginxの起動。
起動確認も併せて行います。
/usr/local/nginx/sbin/nginx
netstat -tan | grep 80
ps aux | grep nginx
必要に応じて、iptables -Fをするなどセキュリティ設定もお忘れなく。
まずは、デフォルトのログ出力を確認します。
tail -f /usr/local/nginx/logs/error.log
わざと存在しないコンテンツファイル(test.html)にアクセスさせると、
以下のようなログが出力されます。
では続いてdebugを使ったログ出力です。
設定ファイル(/usr/local/nginx/conf/nginx.conf)に以下の設定を行います。
error_log logs/error.log debug;
その後、Nginxの再起動を行って再びログを見てみます。
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx
tail -f /usr/local/nginx/logs/error.log
先程と同様に存在しないtest.htmlというコンテンツにアクセスすると、
以下のように大量のデバックログが出力されます。
よくみると、epollなどのシステムコールに関するものや、
HTTPヘッダーの情報など様々な情報を確認することが出来ます。
なお、
error_log logs/error.log debug_http;
のようにすることで特定のモジュールでのみデバックログを出力されることも可能です。
詳細は、こちらをご覧下さい。