nginx 它的 access log 紀錄的比較詳盡,所有不是錯誤訊息的狀態,也會被記到 access log 裡面。
要重新產生這個錯誤很簡單。當你的 nginx 架設好了之後,打開瀏覽器造訪網站,再把瀏覽器關掉,就可以在 nginx 的 access.log 看到。
# tail -f /var/log/nginx/access.log
fashion.piliapp.com 1.162.83.60 - - [20/Feb/2013:07:17:25 +0000] GET / HTTP/1.1 502 732 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 AlexaToolbar/alxg-3.1 - 0.000 943
1.162.83.60 - - [20/Feb/2013:07:17:35 +0000] - 400 0 - - - 0.000 0
1.162.83.60 - - [20/Feb/2013:07:17:35 +0000] - 400 0 - - - 0.000 0
1.162.83.60 - - [20/Feb/2013:07:17:35 +0000] - 400 0 - - - 0.000 0
1.162.83.60 - - [20/Feb/2013:07:17:35 +0000] - 400 0 - - - 0.000 0
1.162.83.60 - - [20/Feb/2013:07:17:35 +0000] - 400 0 - - - 0.000 0
所以開一次瀏覽器,產生了 5 個連線,然後關掉瀏覽器,或是等個10~20秒後,連線就會關閉,就會產生很多 400 的 log。
要關閉就到 nginx 的預設的設定檔
vim /etc/nginx/nginx.conf
- access_log /var/log/nginx/access.log;
+ access_log off;
error_log /var/log/nginx/error.log;
把預設的 log 關閉就可以了,當然 一般的 log 還是要記到其它地方
我通常是在 nginx.conf 設定 log format
http {
............
log_format access_format_name '$host $remote_addr - $remote_user [$time_local] $request '
'$status $bytes_sent $http_referer '
'$http_user_agent $http_x_forwarded_for $request_time $request_length';
............
}
然後在 sites-enabled/piliapp.com.conf 裡面設
server {
............
access_log /var/log/nginx/access.log access_format_name;
............
}
就可以了。