Nginx訪問日誌(access_log)配置及信息詳解

Nginx訪問日誌(access_log)配置及信息詳解

經過訪問日誌,能夠知曉用戶的地址,網站的哪些部分最受歡迎,用戶的瀏覽時間,對大多數用戶用的的瀏覽器作出針對性優化。html

Nginx訪問日誌(access_log)介紹

    Nginx會把每一個用戶訪問往咱的日誌信息記錄到指定的日誌文件裏,供網站管理員分析用戶瀏覽行爲等,此功能又 ngx_http_log_module 模塊負責。前端

訪問日誌參數

    Nginx訪問日誌主要有兩個參數控制nginx

log_format  #用來定義記錄日誌的格式(能夠定義多種日誌格式,取不一樣名字便可)web

access_log  #用來指定日至文件的路徑及使用的何種日誌格式記錄日誌瀏覽器

lof_format的默認值:

#    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的默認值:

#access_log  logs/access.log  main;網站

log_format語法格式及參數語法說明以下:

    log_format    <NAME>    <Strin­­­g>;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語法格式及參數語法說明以下:

    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]  #表示其餘條件

通常場景這些參數都無需配置,極端優化纔有可能會考慮這些參數。

lof_format參數的標籤段位置:

http

access_log參數的標籤段位置:

http, server, location, if in location, limit_except

參考資料:http://nginx.org/en/docs/http/ngx_http_log_module.html

Nginx配置訪問日誌過程介紹

(1)建立log_format語句

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;

}

(2)插入access_log語句

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;

        #新增內容↑

}

(3)重啓服務

確認無誤即可重啓,操做以下:

nginx -t

#結果顯示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

相關文章
相關標籤/搜索