nginxのログにURL出力できますよ〜
前回に引き続き、nginxのログの話題です。
access.logを見ていて、ふと絶対URLが見れたらいいのになあ、と思ったので対応してみました。
修正前
log_format main '$host$remote_addr - $remote_user [$time_local] "$http_host" "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
↓
127.0.0.1 - - [11/Jan/2012:20:17:16 +0900] "GET /rakuten/item/search/553550/?genreSelectFlg=1 HTTP/1.1" 200 28159 "http://localhost/rakuten/item/search/505034/?genreSelectFlg=1" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7" "-"
修正後
log_format custom1 '$remote_addr - $remote_user [$time_local] "$request_method $scheme://$http_host$request_uri ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
↓
127.0.0.1 - - [11/Jan/2012:20:45:15 +0900] "GET http://localhost/rakuten/item/search/400962/?genreSelectFlg=1" 200 36425 "http://localhost/rakuten/item/search/112203/?genreSelectFlg=1" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7" "-"
クローラがどのホスト名にアクセスしてくるかも解るので、絶対URL表示の方がいいですね。