Nginx配置-日志格式配置方式
上線了一個(gè)小的預(yù)約程序,配置通過Nginx進(jìn)行訪問入口,默認(rèn)的日志是沒有請(qǐng)求時(shí)間的,因此需要配置一下,將每一次的請(qǐng)求的訪問響應(yīng)時(shí)間記錄出來,備查與優(yōu)化使用.
一、默認(rèn)的日志格式
默認(rèn)的日志格式如下(默認(rèn)是注解掉的,系統(tǒng)也自動(dòng)會(huì)使用):
#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;
二、我使用的日志格式
我僅僅在默認(rèn)的基礎(chǔ)上加上響應(yīng)時(shí)間的兩個(gè)我較關(guān)心的參數(shù):request_time與upstream_response_time
將以下的配置開放并修改(我后面用了格式2,時(shí)間在前面,容易查看):
帶時(shí)間數(shù)據(jù)參數(shù)的日志格式1
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" "$request_time" "$upstream_response_time"'; access_log logs/access.log main;
調(diào)整了下時(shí)間參數(shù)的顯示順序的格式2:
log_format main '$remote_addr - $remote_user [$request_time $upstream_response_time] [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main;
注意的是:log_format與access_log的注釋都要放開,僅放開log_format也是不生效的.
#設(shè)置成格式2后,可以用相應(yīng)的正則表達(dá)式,查看大于1秒的日志,分兩步如下:
##1.高亮?xí)r間數(shù)據(jù)的正則表達(dá)式 tail -f access.log |grep "\[[0-9]\.[0-9][0-9][0-9] [0-9]\.[0-9][0-9][0-9]\]" ##2.大于1秒的日志的正則表達(dá)式,即將第一個(gè)數(shù)字改成[1-9]即可 tail -f access.log |grep "\[[1-9]\.[0-9][0-9][0-9] [0-9]\.[0-9][0-9][0-9]\]"
三、參數(shù)
說明
$remote_addr
:客戶端地址$remote_user
:客戶端用戶名稱$time_local
:訪問時(shí)間和時(shí)區(qū)$request
:請(qǐng)求的URI和HTTP協(xié)議$status
:HTTP請(qǐng)求狀態(tài)$body_bytes_sent
:發(fā)送給客戶端文件內(nèi)容大小$http_referer
:url跳轉(zhuǎn)來源$http_user_agent
:用戶終端瀏覽器等信息$http_host
:請(qǐng)求地址,即瀏覽器中你輸入的地址(IP或域名)$request_time
:處理請(qǐng)求的總時(shí)間,包含了用戶數(shù)據(jù)接收時(shí)間$upstream_response_time
:建立連接和從上游服務(wù)器接收響應(yīng)主體的最后一個(gè)字節(jié)之間的時(shí)間$upstream_connect_time
:花費(fèi)在與上游服務(wù)器建立連接上的時(shí)間$upstream_header_time
:建立連接和從上游服務(wù)器接收響應(yīng)頭的第一個(gè)字節(jié)之間的時(shí)間
四、測(cè)試效果
修改前默認(rèn)日志
127.0.0.1 - - [03/May/2022:12:02:51 +0800] "GET /byhsyyfront/byPages/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"
127.0.0.1 - - [03/May/2022:12:02:51 +0800] "GET /byhsyyGateway/byhsyySystem/verifyCode/getVerifyCode HTTP/1.1" 200 2553 "http://localhost:8881/byhsyyfront/byPages/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"
修改后日志
127.0.0.1 - - [03/May/2022:12:00:47 +0800] "GET /byhsyyfront/byPages/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36" "-" "0.025" "0.025"
127.0.0.1 - - [03/May/2022:12:00:47 +0800] "GET /byhsyyGateway/byhsyySystem/verifyCode/getVerifyCode HTTP/1.1" 200 2178 "http://localhost:8881/byhsyyfront/byPages/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36" "-" "0.037" "0.037"
可以看到修改后的最后多了兩個(gè)關(guān)于時(shí)間的參數(shù)數(shù)據(jù),可以用于響應(yīng)時(shí)間快慢分析.
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用AWS的ELB服務(wù)時(shí)為Nginx啟用代理協(xié)議的步驟講解
這篇文章主要介紹了使用AWS的ELB服務(wù)時(shí)為Nginx啟用代理協(xié)議的步驟講解,ELB服務(wù)是亞馬遜服務(wù)器提供的常用的負(fù)載均衡方案,需要的朋友可以參考下2015-12-12Nginx限制某個(gè)IP同一時(shí)間段的訪問次數(shù)和請(qǐng)求數(shù)示例代碼
nginx可以通過ngx_http_limit_conn_module和ngx_http_limit_req_module配置來限制ip在同一時(shí)間段的訪問次數(shù).具體示例代碼大家參考下本文2017-08-08Nginx IP封禁及自動(dòng)封禁IP的實(shí)現(xiàn)
本文主要介紹了Nginx IP封禁及自動(dòng)封禁IP的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01