nginx 日子配置

nginx access_log

nginx 日誌說明

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

控制訪問日誌的參數nginx

參數 說明
log_format 經過不一樣的名稱來定義日誌的輸出格式,能夠定義多個
access_log 用來指定日誌保存的路徑和使用的輸出格式

nginx中日誌的做用

  • access日誌

記錄nginx處理的請求的過程,包含請求類型、時間、客戶端信息、處理結果、處理時長等信息,具體能夠經過log_format指令引用特定變量來記錄相關信息。web

  • error日誌

記錄nginx進程啓動、中止、重啓及處理請求過程當中發生的錯誤信息。算法

  • rewrite日誌

記錄rewrite規則工做的過程,能夠用於調試rewrite規則。apache

nginx中能夠記錄的日誌主要有access日誌、error日誌和rewrite日誌。前兩種由ngx_http_log_module模塊予以支持,rewrite日誌則由ngx_http_rewrite_module模塊提供,這兩個模塊默認都已包含且啓用。瀏覽器

自定義一個 nginx 日誌格式

# 定義一個日誌的輸出格式
log_format main '$remote_addr - $remote_user [$time_local] "$request"  $status $body_bytes_sent "$http_referer"  "$http_user_agent" "$http_x_forwarded_for"';
# 指定日誌的報錯位置和指定日誌的輸出格式爲上面定義的格式(main爲上面定義的日誌標籤)
access_log         logs/access.log main;

log_format 語法格式及參數語法說明

log_format [name [string];

name表示格式名稱,string表示等義的格式。log_format有一個默認的無需設置的combined日誌格式,至關於apache的combined日誌格式。

log_format格式變量:

$http_referer          # 記錄這次請求是從哪一個鏈接訪問過來的,能夠根據該參數進行防盜鏈設置。
$http_user_agent       # 記錄客戶端訪問信息,例如:瀏覽器、手機客戶端等
$remote_addr           # 記錄客戶端IP地址
$http_x_forwarded_for  # 當前端有代理服務器時,設置web節點記錄客戶端地址的配置,此參數生效的前提是代理服務器也要進行相關的x_forwarded_for設置
$remote_user           # 記錄客戶端用戶名稱
$request               # 記錄請求的URL和HTTP協議
$status                # 記錄請求狀態
$body_bytes_sent       # 發送給客戶端的字節數,不包括響應頭的大小; 該變量與Apache模塊mod_log_config裏的「%B」參數兼容。
$bytes_sent            # 發送給客戶端的總字節數。
$connection            # 鏈接的序列號。
$connection_requests   # 當前經過一個鏈接得到的請求數量。
$msec                  # 日誌寫入時間。單位爲秒,精度是毫秒。
$pipe                  # 若是請求是經過HTTP流水線(pipelined)發送,pipe值爲「p」,不然爲「.」。
$http_referer          # 記錄從哪一個頁面連接訪問過來的
$http_user_agent       # 記錄客戶端瀏覽器相關信息
$request_length        # 請求的長度(包括請求行,請求頭和請求正文)。
$request_time          # 請求處理時間,單位爲秒,精度毫秒; 從讀入客戶端的第一個字節開始,直到把最後一個字符發送給客戶端後進行日誌寫入爲止。
$time_iso8601          # ISO8601標準格式下的本地時間。
$time_local            # 通用日誌格式下的本地時間。

access_log語法格式及參數語法

access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];

做用域   : http, server, location, if in location, limit_except

其餘參數說明

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        # 爲緩衝區的日誌刷到磁盤的時間

zip[=level]       # 表示壓縮級別

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

open_log_file_cache指令

語法格式: 
open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];

使用open_log_file_cache來設置日誌文件緩存(默認是off)。

默認值: open_log_file_cache off;
做用於: http, server, location

對於每一條日誌記錄,都將是先打開文件,再寫入日誌,而後關閉。可使用open_log_file_cache來設置日誌文件緩存(默認是off),格式以下:
參數註釋以下:
max       # 設置緩存中的最大文件描述符數量,若是緩存被佔滿,採用LRU算法將描述符關閉。
inactive  # 設置存活時間,默認是10s
min_uses  # 設置在inactive時間段內,日誌文件最少使用多少次後,該日誌文件描述符記入緩存中,默認是1次
valid     # 設置檢查頻率,默認60s
off       # 禁用緩存
相關文章
相關標籤/搜索