Nginx 軟件會把每一個用戶訪問網站的日誌信息記錄到指定的日誌文件裏,供網站提供者分析用戶的瀏覽行爲等,此功能由 ngx_http_log_module 模塊負責。html
語法:前端
access_log path [format [buffer=size]];
access_log off;
默認值:nginx
access_log logs/access.log combined;
# 「combined」日誌格式:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
爲訪問日誌設置路徑,格式和緩衝區大小(nginx訪問日誌支持緩存)。 在同一個配置層級裏能夠指定多個日誌。 特定值off會取消當前配置層級裏的全部access_log指令。 若是沒有指定日誌格式則會使用預約義的「combined」格式。vim
[root@localhost conf]# cat nginx.conf
worker_processes 1;
error_log logs/error.log error;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include vhosts/*.conf;
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # 先定義日誌格式,main是日誌格式的名字
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main; # 使用日誌格式,也能夠把這一行放到想記錄訪問日誌的虛擬主機配置文件中去
}
$remote_addr :記錄訪問網站的客戶端地址
$remote_user :記錄遠程客戶端用戶名稱
$time_local :記錄訪問時間與時區
$request :記錄用戶的 http 請求起始行信息
$status :記錄 http 狀態碼,即請求返回的狀態,例如 200 、404 、502 等
$body_bytes_sent :記錄服務器發送給客戶端的響應 body 字節數
$http_referer :記錄這次請求是從哪一個連接訪問過來的,能夠根據 referer 進行防盜鏈設置
$http_user_agent :記錄客戶端訪問信息,如瀏覽器、手機客戶端等
$http_x_forwarded_for :當前端有代理服務器時,設置 Web 節點記錄客戶端地址的配置,此參數生效的前提是代理服務器上也進行了相關的 x_forwarded_for 設置
access.log中的真實日誌:瀏覽器
192.168.5.1 - - [25/May/2017:18:27:51 +0800] "GET / HTTP/1.1" 200 12 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)" "-"
對上面的日誌進行分析:緩存
$remote_addr 對應的是 192.168.5.1 ,即客戶端的 IP 地址
$remote_user 對應的是 '-' ,沒有遠程用戶,因此用 '-' 填充
$time_local 對應的是 [25/May/2017:18:27:51 +0800]
$request 對應的是 "GET / HTTP/1.1"
$status 對應的是狀態碼 200 ,表示訪問正常
$body_bytes_sent 對應的是 12 字節,即響應 body 的大小
$http_referer 對應的是 "-" ,因爲是直接打開域名瀏覽的,所以 referer 沒有值
$http_user_agent 對應的是 "Mozilla/4.0 (compatible; MSIE........)"
$http_x_forwarded_for 對應的是 "-" ,由於 Web 服務沒有使用代理,因此用 "-" 填充
http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_log_module.html#access_log服務器