新聞中心
Nginx訪問日志(access_log)配置及信息詳解
通過訪問日志,可以知曉用戶的地址,網(wǎng)站的哪些部分最受歡迎,用戶的瀏覽時間,對大多數(shù)用戶用的的瀏覽器做出針對性優(yōu)化。
成都一家集口碑和實力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊和靠譜的建站技術(shù),10余年企業(yè)及個人網(wǎng)站建設(shè)經(jīng)驗 ,為成都1000多家客戶提供網(wǎng)頁設(shè)計制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營銷型網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,同時也為不同行業(yè)的客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選成都創(chuàng)新互聯(lián)。
Nginx訪問日志(access_log)介紹
Nginx會把每個用戶訪問往咱的日志信息記錄到指定的日志文件里,供網(wǎng)站管理員分析用戶瀏覽行為等,此功能又 ngx_http_log_module 模塊負(fù)責(zé)。
訪問日志參數(shù)
Nginx訪問日志主要有兩個參數(shù)控制
log_format #用來定義記錄日志的格式(可以定義多種日志格式,取不同名字即可)
access_log #用來指定日至文件的路徑及使用的何種日志格式記錄日志
lof_format的默認(rèn)值:
# 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的默認(rèn)值:
#access_log logs/access.log main;
log_format語法格式及參數(shù)語法說明如下:
log_format
關(guān)鍵字 格式標(biāo)簽 日志格式
關(guān)鍵字:其中關(guān)鍵字error_log不能改變
格式標(biāo)簽:格式標(biāo)簽是給一套日志格式設(shè)置一個獨(dú)特的名字
日志格式:給日志設(shè)置格式
log_format格式變量:
$remote_addr #記錄訪問網(wǎng)站的客戶端地址
$remote_user #遠(yuǎn)程客戶端用戶名
$time_local #記錄訪問時間與時區(qū)
$request #用戶的http請求起始行信息
$status #http狀態(tài)碼,記錄請求返回的狀態(tài)碼,例如:200、301、404等
$body_bytes_sent #服務(wù)器發(fā)送給客戶端的響應(yīng)body字節(jié)數(shù)
$http_referer #記錄此次請求是從哪個連接訪問過來的,可以根據(jù)該參數(shù)進(jìn)行防盜鏈設(shè)置。
$http_user_agent #記錄客戶端訪問信息,例如:瀏覽器、手機(jī)客戶端等
$http_x_forwarded_for #當(dāng)前端有代理服務(wù)器時,設(shè)置web節(jié)點(diǎn)記錄客戶端地址的配置,此參數(shù)生效的前提是代理服務(wù)器也要進(jìn)行相關(guān)的x_forwarded_for設(shè)置
access_log語法格式及參數(shù)語法說明如下:
access_log
關(guān)鍵字 日志文件 格式標(biāo)簽
關(guān)鍵字:其中關(guān)鍵字error_log不能改變
日志文件:可以指定任意存放日志的目錄
格式標(biāo)簽:給日志文件套用指定的日志格式
其他語法:
access_log off; #關(guān)閉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 #為存放訪問日志的緩沖區(qū)大小
flush=time #為緩沖區(qū)的日志刷到磁盤的時間
gzip[=level] #表示壓縮級別
[if = condition] #表示其他條件
一般場景這些參數(shù)都無需配置,極端優(yōu)化才有可能會考慮這些參數(shù)。
lof_format參數(shù)的標(biāo)簽段位置:
http
access_log參數(shù)的標(biāo)簽段位置:
http, server, location, if in location, limit_except
參考資料:http://nginx.org/en/docs/http/ngx_http_log_module.html
Nginx配置訪問日志過程介紹
(1)創(chuàng)建log_format語句
vi conf/nginx.conf
#vi編輯nginx主配置文件,添加標(biāo)簽為main的log_format格式(http標(biāo)簽內(nèi),在所有的server標(biāo)簽內(nèi)可以調(diào)用)
文件內(nèi)容:
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;
}
(2)插入access_log語句
vi conf/vhost/www.abc.com.conf
#vi編輯虛擬主機(jī)配置文件
文件內(nèi)容:
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;
#新增內(nèi)容↑
}
(3)重啟服務(wù)
確認(rèn)無誤便可重啟,操作如下:
nginx -t
#結(jié)果顯示ok和success沒問題便可重啟
nginx -s reload
(4)查看訪問日志文件
ll logs/access_www.abc.com.log
-rw-r--r-- 1 root root 2305 Jun 13 18:25 logs/access_www.abc.com.log
查看是否生產(chǎn)該文件,生成該文件則配置成功。
文章題目:Nginx訪問日志(access_log)配置及信息詳解
網(wǎng)頁路徑:http://www.dlmjj.cn/article/pjgoss.html