nginx訪問日志可以設(shè)置自定義的格式,來滿足特定的需求。
示例:
示例1 log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' '$host "$request_uri" $status' '"$http_referer" "$http_user_agent"'; 示例2 log_format main '$remote_addr [$time_local] ' '$host "$request_uri" $status "$request"' '"$http_referer" "$http_user_agent" "$request_time"'; 若不配置log_format或者不在access_log配置中指定log_format,則默認(rèn)格式為: '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent";
常見變量:
變量 |
說明 |
$time_local |
通用日志格式下的本地時(shí)間;(服務(wù)器時(shí)間) |
$remote_addr |
客戶端(用戶)IP地址 |
$status |
請(qǐng)求狀態(tài)碼,如200,404,301,302等 |
$body_bytes_sent |
發(fā)送給客戶端的字節(jié)數(shù),不包括響應(yīng)頭的大小 |
$bytes_sent |
發(fā)送給客戶端的總字節(jié)數(shù) |
$request_length |
請(qǐng)求的長度(包括請(qǐng)求行,請(qǐng)求頭和請(qǐng)求正文) |
$request_time |
請(qǐng)求處理時(shí)間,單位為秒,小數(shù)的形式 |
$upstream_addr |
集群輪詢地址 |
$upstream_response_time |
指從Nginx向后端(php-cgi)建立連接開始到接受完數(shù)據(jù)然后關(guān)閉連接為止的時(shí)間 |
$remote_user |
用來記錄客戶端用戶名稱 |
$request |
請(qǐng)求方式(GET或者POST等)+URL(包含$request_method,$host,$request_uri) |
$http_user_agent |
用戶瀏覽器標(biāo)識(shí) |
$http_host |
請(qǐng)求的url地址(目標(biāo)url地址)的host |
$host |
等同于$http_host |
$http_referer |
來源頁面,即從哪個(gè)頁面轉(zhuǎn)到本頁,如果直接在瀏覽器輸入網(wǎng)址來訪問,則referer為空 |
$uri |
請(qǐng)求中的當(dāng)前URI(不帶請(qǐng)求參數(shù),參數(shù)位于$args),不同于瀏覽器傳遞的$request_uri的值,它可以通過內(nèi)部重定向,或者使用index指令進(jìn)行修改。 |
$document_uri |
等同于$uri |
$request_uri |
比$uri多了參數(shù),即$uri+$args |
$http_x_forwarded_for |
如果使用了代理,這個(gè)參數(shù)會(huì)記錄代理服務(wù)器的ip和客戶端的ip |