Nginx通路日志
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
' $host "$request_uri" $status'
' "$http_referer" "$http_user_agent"';
combined_realip:日志名稱
其餘為日志内容
$remote_addr 用戶端IP(公網IP)
$http_x_forwarded_for 代理伺服器的IP
$time_local 伺服器本地時間
$host 通路主機名(域名)
$request_uri 通路的URL位址
$status 狀态碼
$http_referer referer
$http_user_agent user_agent
[root@centos7 ~]# vim /usr/local/nginx/conf/vhost/test.com.conf
server
{
listen 80;
server_name test.com test2.com test3.com;
index index.html index.htm index.php;
access_log /tmp/test.com.log combined_realip;
驗證:
[root@centos7 ~]# tail /tmp/test.com.log
127.0.0.1 - [10/Nov/2017:17:48:20 +0800] test.com "/" 401 "-" "curl/7.29.0"
127.0.0.1 - [10/Nov/2017:17:48:30 +0800] test.com "/index.php" 200 "-" "curl/7.29.0"
Nginx日志切割
日志切割腳本
[root@centos7 shell]# vi nginx_log_rotate.sh
#! /bin/bash
d=`date -d "-1 day" +%Y%m%d`
#定義切割時間(切割一天前的日志)
logdir="/tmp/"
#此處指定要切割的日志路徑(該路徑來自虛拟主機配置檔案)
nginx_pid="/usr/local/nginx/logs/nginx.pid"
#調用pid的目的是執行指令:/bin/kill -HUP `cat $nginx_pid`
#該指令等價于指令:nginx -s reload(重新加載檔案)
cd $logdir
for log in `ls *.log`
do
mv $log $log-$d
done
/bin/kill -HUP `cat $nginx_pid`
#執行此指令進行重載生成新的日志檔案,與kill -usr1 一樣
靜态檔案不記錄日志和過期時間
驗證訪圖檔的時候:
[root@centos7 test.com]# curl -x127.0.0.1:80 test.com/baidu.png -I
HTTP/1.1 200 OK
Server: nginx/1.12.1
Date: Fri, 10 Nov 2017 10:01:03 GMT
Content-Type: image/png
[root@centos7 test.com]# curl -x127.0.0.1:80 test.com/index.php
沒記錄日志
[root@centos7 test.com]# tail /tmp/test.com.log
127.0.0.1 - [10/Nov/2017:18:02:38 +0800] test.com "/index.php" 200 "-" "curl/7.29.0"
問題:curl通路時間不對,但是系統時間是對的?
[root@centos7 test.com]# curl -x127.0.0.1:80 test.com/baidu.png -I
Date: Wed, 15 Nov 2017 02:58:15 GMT
[root@centos7 test.com]# date
Wed Nov 15 10:58:32 CST 2017
本文轉自 jiekegz 51CTO部落格,原文連結:http://blog.51cto.com/jacksoner/1981934