Nginx – access_log格式及配置
日誌格式
日誌內容
192.168.199.164 – jeson [14/Apr/2018:07:17:09 +0800] “GET /?feed=rss2 HTTP/1.1” 200 13883 “http://knowledge.me/” “Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko” “-“
日誌變量
‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘“$http_user_agent” “$http_x_forwarded_for”‘;
日誌配置
一般情況下,訪問日誌基於虛擬主機(server標簽段)內,以便於針對該站點的訪問記錄。
語法:access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
示例:
access_log off; #關閉日誌功能
access_log /spool/logs/nginx-access.log main gzip buffer=32k fush=5s; #日誌保存在路徑下,使用main定義的格式,用壓縮及緩存32k後,5秒後刷入磁盤。
思考的問題
當大並發量的時候,日誌文件會對磁盤的IO有壓力。需要使用 buffer=size gzip[=level] flush=time 進行優化。
日誌的輪詢
nginx的日誌沒有自動輪詢的功能,也就是日誌文件不會按年月日來生成文件。
cat /usr/local/nginx/logs/cut_longhsuai.sh #!/bin/bash # cut the access log for www.longshuai.com basedir=/usr/local/nginx old_log_path=$basedir/logs/access.log log_save_path=$basedir/logs save_log_name=access_$(date -d “yesterday” +”%Y%m%d”).log [ -f “$old_log_path” ] || exit 1 /bin/mv $old_log_path $log_save_path/$save_log_name $basedir/sbin/nginx -s reopen
添加到定時任務計劃
chmod +x /usr/local/nginx/logs/cut_longshuai.sh crontab -e 00 00 * * * /bin/sh /usr/local/nginx/logs/cut_longshuai.sh &>/dev/null
Nginx – access_log格式及配置