目的:將用戶的訪問信息記錄到指定的文件中由ngx_http_log_module模塊負責html
訪問日誌參數:nginx
access_log:指定日誌文件的路徑和使用何種日誌格式記錄日誌shell
log_format:用來指定日誌的格式windows
能夠放置標籤段: main,http,server,location瀏覽器
日誌格式緩存
添加日誌:併發
sed -i '1 i error_log logs/error.log error;' /usr/local/nginx/conf/nginx.conf
建立日誌路徑:高併發
mkdir -p /usr/local/nginx/logs
1. 配置log_format(在http中配置)工具
sed -n '21,24p' nginx.conf.default
取出信息後添加都nginx.conf的http模塊中(server以前)測試
2. 配置access_log(最好在虛擬主機裏面配置,便於統計)
默認配置:#access_log logs/access.log main;
放置位置:http server location
本機配置:在單獨的虛擬域名的location後配置(注意封號)
server { listen 80; server_name www.etiantian.com etiantian.com; location / { root html/etiantian; index index.html index.htm; } access_log logs/access_etiantian.log main; } # main 表示全局,全部的訪問虛擬主機etianitian的都會打入
3. 配置windows的hosts解析
C:\Windows\System32\drivers\etc
4. 測試結果
瀏覽器訪問www.etiantian.com【注意,真實環境也有此IP,本次僅做實驗用,記得恢復hosts文件】
1. 高併發能夠寫入緩存
access_log log/access_baobaotao.log main gzip buffer=32k flush=5s;
2. nginx訪問日誌的輪詢處理(日誌按天分割) -->推薦
原因:指定的訪問日誌長時間寫入會致使文件過大而沒法分析,能夠使用切割腳本
#!/bin/sh Dateformat=`date +%Y%m%d` Basedir="/usr/local/nginx" Nginxlogdir="$Basedir/logs" Logname="access_etiantian" [ -d $Nginxlogdir ] && cd $Nginxlogdir||exit 1 [ -f ${Logname}.log ] || exit 1 /bin/mv ${Logname}.log ${Dateformat}_${Logname}.log $Basedir/sbin/nginx -s reload
3.切割腳本添加到定時任務
crontab –e
00 00 * * * /bin/sh cut_nginx.sh &>/dev/null
自帶:syslog rsyslog
開源:flume logstash scrible Awstats ELK