溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Nginx訪問(wèn)日志(access_log)配置及信息詳解

發(fā)布時(shí)間:2020-07-09 12:09:16 來(lái)源:網(wǎng)絡(luò) 閱讀:2425 作者:CzlunSu 欄目:建站服務(wù)器

Nginx訪問(wèn)日志(access_log)配置及信息詳解

通過(guò)訪問(wèn)日志,可以知曉用戶的地址,網(wǎng)站的哪些部分最受歡迎,用戶的瀏覽時(shí)間,對(duì)大多數(shù)用戶用的的瀏覽器做出針對(duì)性優(yōu)化。

Nginx訪問(wèn)日志(access_log)介紹

    Nginx會(huì)把每個(gè)用戶訪問(wèn)往咱的日志信息記錄到指定的日志文件里,供網(wǎng)站管理員分析用戶瀏覽行為等,此功能又 ngx_http_log_module 模塊負(fù)責(zé)。

訪問(wèn)日志參數(shù)

    Nginx訪問(wèn)日志主要有兩個(gè)參數(shù)控制

log_format  #用來(lái)定義記錄日志的格式(可以定義多種日志格式,取不同名字即可)

access_log  #用來(lái)指定日至文件的路徑及使用的何種日志格式記錄日志

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語(yǔ)法格式及參數(shù)語(yǔ)法說(shuō)明如下:

    log_format    <NAME>    <Strin---g>;

    關(guān)鍵字         格式標(biāo)簽   日志格式

 

    關(guān)鍵字:其中關(guān)鍵字error_log不能改變

    格式標(biāo)簽:格式標(biāo)簽是給一套日志格式設(shè)置一個(gè)獨(dú)特的名字

    日志格式:給日志設(shè)置格式

 

log_format格式變量:

    $remote_addr  #記錄訪問(wèn)網(wǎng)站的客戶端地址

    $remote_user  #遠(yuǎn)程客戶端用戶名

    $time_local  #記錄訪問(wèn)時(shí)間與時(shí)區(qū)

    $request  #用戶的http請(qǐng)求起始行信息

    $status  #http狀態(tài)碼,記錄請(qǐng)求返回的狀態(tài)碼,例如:200、301404

    $body_bytes_sent  #服務(wù)器發(fā)送給客戶端的響應(yīng)body字節(jié)數(shù)

    $http_referer  #記錄此次請(qǐng)求是從哪個(gè)連接訪問(wèn)過(guò)來(lái)的,可以根據(jù)該參數(shù)進(jìn)行防盜鏈設(shè)置。

    $http_user_agent  #記錄客戶端訪問(wèn)信息,例如:瀏覽器、手機(jī)客戶端等

    $http_x_forwarded_for  #當(dāng)前端有代理服務(wù)器時(shí),設(shè)置web節(jié)點(diǎn)記錄客戶端地址的配置,此參數(shù)生效的前提是代理服務(wù)器也要進(jìn)行相關(guān)的x_forwarded_for設(shè)置

access_log語(yǔ)法格式及參數(shù)語(yǔ)法說(shuō)明如下:

    access_log    <FILE>    <NAME>;

    關(guān)鍵字         日志文件   格式標(biāo)簽

 

    關(guān)鍵字:其中關(guān)鍵字error_log不能改變

    日志文件:可以指定任意存放日志的目錄

    格式標(biāo)簽:給日志文件套用指定的日志格式

 

其他語(yǔ)法:

    access_log    off;  #關(guān)閉access_log,即不記錄訪問(wèn)日志

    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]];

    說(shuō)明:

    buffer=size  #為存放訪問(wèn)日志的緩沖區(qū)大小

    flush=time  #為緩沖區(qū)的日志刷到磁盤的時(shí)間

    gzip[=level]  #表示壓縮級(jí)別

    [if = condition]  #表示其他條件

一般場(chǎng)景這些參數(shù)都無(wú)需配置,極端優(yōu)化才有可能會(huì)考慮這些參數(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配置訪問(wèn)日志過(guò)程介紹

(1)創(chuàng)建log_format語(yǔ)句

vi conf/nginx.conf

#vi編輯nginx主配置文件,添加標(biāo)簽為mainlog_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語(yǔ)句

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)無(wú)誤便可重啟,操作如下:

nginx -t

#結(jié)果顯示oksuccess沒(méi)問(wèn)題便可重啟

nginx -s reload

(4)查看訪問(wèn)日志文件

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)該文件,生成該文件則配置成功。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI