1. 程式人生 > 其它 >Nginx記錄請求頭/響應頭到訪問日誌

Nginx記錄請求頭/響應頭到訪問日誌

記錄請求頭資訊

比如下請求頭部分資訊:
accept: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9
cache-control: no-cache
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36

在Nginx的access_log中記錄ua資訊,如下:
"user_agent": "$http_user_agent",

tips:
    1. 獲取請求頭在欄位前新增 $http_欄位名
    2. 欄位名使用下劃線分隔即使在頁面展示的請求頭是中劃線, 比如: user-agent --> user_agent

記錄響應頭資訊

網上搜索記錄響應頭的文章千篇一律全是寫lua實現,我覺得侵入太大,於是在官方文件上找到了這種方式。

比如下響應頭部分資訊:
accept-ranges: bytes
access-control-allow-origin: *
cache-control: max-age=10368000
content-length: 122996
content-type: image/webp
date: Mon, 18 Apr 2022 02:36:34 GMT
last-modified: Thu, 23 Dec 2021 06:22:26 GMT
server: Lego Server
timing-allow-origin: *
x-cache-lookup: Cache Hit
x-nws-log-uuid: 6197134411751577255

在Nginx的access_log中記錄content-type資訊,如下:

"content_type": "$sent_http_content_type",
"content_length": "$sent_http_content_length",

tips:
    1. 獲取請求頭在欄位前新增 $sent_http_欄位名
    2. 欄位名使用下劃線分隔即使在頁面展示的請求頭是中劃線, 比如: content-type --> content_type