經過訪問日誌,能夠知曉用戶的地址,網站的哪些部分最受歡迎,用戶的瀏覽時間,對大多數用戶用的的瀏覽器作出針對性優化。html
Nginx會把每一個用戶訪問往咱的日誌信息記錄到指定的日誌文件裏,供網站管理員分析用戶瀏覽行爲等,此功能又 ngx_http_log_module 模塊負責。前端
Nginx訪問日誌主要有兩個參數控制nginx
log_format #用來定義記錄日誌的格式(能夠定義多種日誌格式,取不一樣名字便可)web
access_log #用來指定日至文件的路徑及使用的何種日誌格式記錄日誌瀏覽器
# log_format main '$remote_addr - $remote_user [$time_local] "$request" '服務器
# '$status $body_bytes_sent "$http_referer" 'app
# '"$http_user_agent" "$http_x_forwarded_for"';優化
#access_log logs/access.log main;網站
log_format <NAME> <String>;spa
關鍵字 格式標籤 日誌格式
關鍵字:其中關鍵字error_log不能改變
格式標籤:格式標籤是給一套日誌格式設置一個獨特的名字
日誌格式:給日誌設置格式
log_format格式變量:
$remote_addr #記錄訪問網站的客戶端地址
$remote_user #遠程客戶端用戶名
$time_local #記錄訪問時間與時區
$request #用戶的http請求起始行信息
$status #http狀態碼,記錄請求返回的狀態碼,例如:200、30一、404等
$body_bytes_sent #服務器發送給客戶端的響應body字節數
$http_referer #記錄這次請求是從哪一個鏈接訪問過來的,能夠根據該參數進行防盜鏈設置。
$http_user_agent #記錄客戶端訪問信息,例如:瀏覽器、手機客戶端等
$http_x_forwarded_for #當前端有代理服務器時,設置web節點記錄客戶端地址的配置,此參數生效的前提是代理服務器也要進行相關的x_forwarded_for設置
access_log <FILE> <NAME>;
關鍵字 日誌文件 格式標籤
關鍵字:其中關鍵字error_log不能改變
日誌文件:能夠指定任意存放日誌的目錄
格式標籤:給日誌文件套用指定的日誌格式
其餘語法:
access_log off; #關閉access_log,即不記錄訪問日誌
access_log path [format [buffer=size [flush=time]] [if=condition]];
access_log path format gzip[=level] [buffer=size] [flush=time] [if=condition];
access_log syslog:server=address[,parameter=value] [format [if=condition]];
說明:
buffer=size #爲存放訪問日誌的緩衝區大小
flush=time #爲緩衝區的日誌刷到磁盤的時間
gzip[=level] #表示壓縮級別
[if = condition] #表示其餘條件
通常場景這些參數都無需配置,極端優化纔有可能會考慮這些參數。
http
http, server, location, if in location, limit_except
參考資料:http://nginx.org/en/docs/http/ngx_http_log_module.html
vi conf/nginx.conf
#vi編輯nginx主配置文件,添加標籤爲main的log_format格式(http標籤內,在全部的server標籤內能夠調用)
文件內容:
worker_processes 1;
error_log logs/error.log error;
events {
worker_connections 1024;
}
http {
include status.conf;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
server {
listen 80;
server_name localhost;
rewrite ^/.* http://www.abc.com permanent;
}
include vhost/*.conf;
}
vi conf/vhost/www.abc.com.conf
#vi編輯虛擬主機配置文件
文件內容:
server {
access_log /data/log/www;
listen 80;
server_name abc.com www.abc.com;
location / {
root /data/www/www;
index index.html index.htm;
}
error_log logs/error_www.abc.com.log error;
access_log logs/access_www.abc.com.log main;
#新增內容↑
}
確認無誤即可重啓,操做以下:
nginx -t
#結果顯示ok和success沒問題即可重啓
nginx -s reload
ll logs/access_www.abc.com.log
-rw-r--r-- 1 root root 2305 Jun 13 18:25 logs/access_www.abc.com.log