欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx日志格式配置的實現(xiàn)

 更新時間:2025年05月21日 10:39:29   作者:Live in Shanxi.  
本文主要介紹了Nginx日志格式配置的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Nginx日志格式配置 

Nginx日志一般有main格式(默認)和json格式兩種

對比總結

特性默認文本格式JSON 格式
性能高性能,占用資源低解析耗時,CPU 占用相對較高
磁盤占用日志簡短,占用小每個字段都帶有名稱,占用較大
日志分析需要手動解析,較為復雜結構化數(shù)據(jù),分析工具集成方便
可讀性人眼查看方便不直觀,主要靠日志系統(tǒng)查看
擴展性不方便添加新字段靈活添加新字段
集成性兼容傳統(tǒng)日志工具適合與 ELK、EFK 進行日志對接

?? 最佳實踐

  • 性能優(yōu)先: 如果服務器性能不足,優(yōu)先使用文本格式。
  • 日志分析優(yōu)先: 如果要進行集中化日志分析(如 ELK),優(yōu)先使用JSON 格式。
  • 日志分級: 錯誤日志使用文本格式,訪問日志使用 JSON 格式,這樣既能高效記錄錯誤,又能對業(yè)務數(shù)據(jù)進行分析。
  • 日志切割與歸檔: 及時進行日志切割和清理,避免磁盤爆滿。

?? 總結

  • 默認文本格式: 高性能,低資源消耗,適合輕量級或性能要求高的生產(chǎn)環(huán)境。
  • JSON 格式: 結構化日志,便于分析和監(jiān)控,適合現(xiàn)代化運維和日志管理需求。

一、main 日志變量

1. 請求相關變量

變量名含義示例值
$remote_addr客戶端的 IP 地址192.168.1.1
$remote_user客戶端的認證用戶名admin
$request請求的完整字符串(方法 + URI + 協(xié)議)GET /index.html HTTP/1.1
$request_method請求的方法GET, POST
$request_uri原始的請求 URI(包括參數(shù))/index.html?user=123
$uri請求的 URI,不包括查詢參數(shù)/index.html
$args請求的查詢參數(shù)字符串user=123&name=abc
$query_string與 $args 等效,查詢字符串user=123&name=abc
$status響應的 HTTP 狀態(tài)碼200, 404
$body_bytes_sent響應體大?。ㄗ止?jié)數(shù))2048
$http_referer引薦頁面 URLhttp://example.com/
$http_user_agent客戶端的瀏覽器信息Mozilla/5.0 (Windows NT)

2. 時間相關變量

變量名含義示例值
$time_local本地時間戳19/Mar/2025:04:03:51 +0800
$time_iso8601ISO 8601 格式的時間戳2025-03-19T04:03:51+08:00
$msec精確到毫秒的 Unix 時間戳1614768000.123

3. 客戶端相關變量

變量名含義示例值
$remote_addr客戶端的 IP 地址192.168.1.1
$remote_port客戶端的端口號52345
$http_x_forwarded_for客戶端的原始 IP 地址,通常用于代理鏈路中192.168.1.1
$http_user_agent客戶端的 User-Agent 信息Mozilla/5.0 (Windows NT)
$http_referer請求的來源 URL(如果有的話)http://example.com/

4. 上游服務器相關變量

變量名含義示例值
$upstream_addr上游服務器的地址(包括端口)127.0.0.1:8080
$upstream_status上游服務器響應的狀態(tài)碼200, 502
$upstream_response_time上游服務器的響應時間(秒)0.125
$upstream_connect_time與上游服務器建立連接的時間0.050

5. 請求處理相關變量

變量名含義示例值
$request_time處理請求所花費的總時間(秒)0.123
$response_time響應返回的總時間(秒)0.098
$upstream_response_time從上游服務器接收到響應的時間(秒)0.125
$pipe是否通過管道連接處理請求,p 表示是,. 表示不是p

6. Nginx 內部變量

變量名含義示例值
$hostnameNginx 主機名nginx-server
$server_name當前處理請求的服務器名稱www.example.com
$server_addr當前處理請求的服務器 IP 地址192.168.1.1
$nginx_version當前 Nginx 的版本號1.21.3

示例配置:Nginx 日志格式

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 /var/log/nginx/access.log main

#輸出結果

192.168.200.1 - - [19/Mar/2025:03:26:35 -0400] "GET /prod-api/captchaImage HTTP/1.1" 200 4137 "http://192.168.200.14/login?redirect=%2Findex" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0" "-"
192.168.200.1 - - [19/Mar/2025:03:26:40 -0400] "POST /prod-api/login HTTP/1.1" 200 239 "http://192.168.200.14/login?redirect=%2Findex" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0" "-"

字段含義:

  • time:
    • 日志時間戳,采用 ISO 8601 格式。
      • "2025-03-19T04:51:55-04:00":表示 2025 年 3 月 19 日,04:51:55(-04:00 時區(qū))。
  • request_time:
    • 請求總耗時,單位是秒。
      • "0.000":表示從接收到請求到返回響應的時間為 0 秒,響應極快。
  • upstream_response_time:
    • 上游服務器(如 Tomcat)響應時間,單位是秒。
      • "-":表示當前請求沒有經(jīng)過上游服務器(如靜態(tài)資源請求)。
  • remote_addr:
    • 客戶端 IP 地址。
      • "192.168.200.1":請求是從該 IP 地址發(fā)出的。
  • remote_user:
    • 遠程用戶的身份認證信息。
      • "-":表示未進行身份認證(或不涉及認證)。
  • request:
    • 請求行,包含請求方法、資源路徑和協(xié)議版本。
      • "GET /static/js/chunk-2d0bce05.7b94b559.js HTTP/1.1":表示發(fā)起了 GET 請求,訪問了指定的靜態(tài)資源文件。
  • status:
    • 響應狀態(tài)碼,表示請求處理結果。
      • "200":請求成功。
  • body_bytes_sent:
    • 發(fā)送給客戶端的響應體字節(jié)數(shù)。
      • "10029":表示響應體大小為 10029 字節(jié)。
  • http_referer:
    • 請求來源的 URL,表示請求是從哪個頁面發(fā)起的。
      • "http://192.168.200.14/monitor/druid":表示從監(jiān)控頁面發(fā)起的請求。
  • http_user_agent:
    • 客戶端的用戶代理信息,通常包含瀏覽器和操作系統(tǒng)信息。
      • "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0"
  • http_x_forwarded_for:
    • 用于記錄客戶端真實 IP 地址,通常用于反向代理或負載均衡場景。
      • "-":表示沒有經(jīng)過代理或沒有攜帶該頭信息。

二、Json常用變量

1.請求相關變量

變量名含義示例值
$request請求的完整字符串(方法+URI+協(xié)議)GET /index.html HTTP/1.1
$request_method請求方法GET, POST, PUT, DELETE
$request_uri原始請求的 URI(包含參數(shù))/index.html?user=123
$uri請求的 URI(不含參數(shù))/index.html
$args請求的參數(shù)字符串user=123&name=abc
$query_string與 $args 等效user=123&name=abc
$status響應狀態(tài)碼200, 404, 500
$protocol請求協(xié)議HTTP/1.1, HTTP/2.0
$host請求主機名www.example.com
$server_name服務器名稱example.com
$server_port服務器端口80, 443

2.時間和日期相關變量

變量名含義示例值
$time_iso8601ISO 8601 格式的時間戳2025-03-19T04:03:51+08:00
$time_local本地時間戳19/Mar/2025:04:03:51 +0800
$msec精確到毫秒的時間戳(Unix 時間戳)1614768000.123

3.客戶端和用戶相關變量

變量名含義示例值
$remote_addr客戶端 IP 地址192.168.1.1
$remote_port客戶端端口52345
$remote_user已經(jīng)認證的用戶名admin
$http_user_agent用戶代理字符串Mozilla/5.0 (Windows NT 10.0...)
$http_referer引薦頁面http://example.com/page.html
$http_x_forwarded_for代理服務器轉發(fā)的原始客戶端 IP 地址192.168.1.1, 172.16.0.1

4.上游和代理相關變量

變量名含義示例值
$upstream_addr上游服務器地址(IP:端口)127.0.0.1:8080
$upstream_status上游服務器返回的狀態(tài)碼200, 502
$upstream_response_time上游服務器響應時間(秒)0.125
$upstream_connect_time連接上游服務器所花費的時間(秒)0.050
$upstream_header_time上游服務器響應頭時間(秒)0.075

5.請求處理和性能相關變量

變量名含義示例值
$request_time請求從接收到響應完成的總時間(秒)0.245
$body_bytes_sent發(fā)送給客戶端的響應字節(jié)數(shù)(不含響應頭)1024
$bytes_sent發(fā)送的總字節(jié)數(shù)(包含響應頭)2048
$connection連接的序列號12345
$connection_requests當前連接上處理的請求數(shù)5

6.系統(tǒng)和環(huán)境變量

變量名含義示例值
$pid處理請求的工作進程 ID1234
$pipe表示請求是否通過管道傳輸p(管道),.(直接連接)

示例:JSON 日志格式配置

log_format json '{"time":"$time_iso8601",'
                '"request_time":$request_time,'
                '"upstream_response_time":"$upstream_response_time",'
                '"remote_addr":"$remote_addr",'
                '"remote_user":"$remote_user",'
                '"request":"$request",'
                '"status":$status,'
                '"body_bytes_sent":$body_bytes_sent,'
                '"http_referer":"$http_referer",'
                '"http_user_agent":"$http_user_agent",'
                '"http_x_forwarded_for":"$http_x_forwarded_for"}';

access_log /var/log/nginx/access.log json;

#輸出結果

{"time":"2025-03-19T04:51:55-04:00","request_time":0.000,"upstream_response_time":"-","remote_addr":"192.168.200.1","remote_user":"-","request":"GET /static/js/chunk-2d0bce05.7b94b559.js HTTP/1.1","status":200,"body_bytes_sent":10029,"http_referer":"http://192.168.200.14/monitor/druid","http_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0","http_x_forwarded_for":"-"}
{"time":"2025-03-19T04:51:56-04:00","request_time":0.010,"upstream_response_time":"0.009","remote_addr":"192.168.200.1","remote_user":"-","request":"GET /prod-api/monitor/server HTTP/1.1","status":200,"body_bytes_sent":93,"http_referer":"http://192.168.200.14/monitor/server","http_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0","http_x_forwarded_for":"-"}

字段含義:

  • time:

    • 日志時間戳,采用 ISO 8601 格式。
    • "2025-03-19T04:51:55-04:00":表示 2025 年 3 月 19 日,04:51:55(-04:00 時區(qū))。
  • request_time:

    • 請求總耗時,單位是秒。
    • "0.000":表示從接收到請求到返回響應的時間為 0 秒,響應極快。
  • upstream_response_time:

    • 上游服務器(如 Tomcat)響應時間,單位是秒。
    • "-":表示當前請求沒有經(jīng)過上游服務器(如靜態(tài)資源請求)。
  • remote_addr:

    • 客戶端 IP 地址。
    • "192.168.200.1":請求是從該 IP 地址發(fā)出的。
  • remote_user:

    • 遠程用戶的身份認證信息。
    • "-":表示未進行身份認證(或不涉及認證)。
  • request:

    • 請求行,包含請求方法、資源路徑和協(xié)議版本。

    • "GET /static/js/chunk-2d0bce05.7b94b559.js HTTP/1.1"
      
      • GET:HTTP 請求方法。
      • /static/js/chunk-2d0bce05.7b94b559.js:請求的資源路徑。
      • HTTP/1.1:協(xié)議版本。
  • status:

    • HTTP 響應狀態(tài)碼。
    • 200:表示請求成功。
  • body_bytes_sent:

    • 響應體的字節(jié)數(shù)。
    • 10029:表示響應大小為 10029 字節(jié)(約 9.8 KB)。
  • http_referer:

    • 引薦頁面,即從哪個頁面發(fā)起的請求。
    • "http://192.168.200.14/monitor/druid":用戶是從這個頁面發(fā)起的請求。
  • http_user_agent:

    • 客戶端的瀏覽器和操作系統(tǒng)信息。
    • 瀏覽器:Chrome 134.0.0.0
    • 操作系統(tǒng):Windows 10 x64
  • http_x_forwarded_for:

    • 用于識別通過代理服務器訪問的客戶端的真實 IP。
    • "-":表示沒有經(jīng)過代理,或沒有傳遞該頭信息。

到此這篇關于Nginx日志格式配置的實現(xiàn)的文章就介紹到這了,更多相關Nginx日志配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • Nginx反向代理springboot的jar包過程解析

    Nginx反向代理springboot的jar包過程解析

    這篇文章主要介紹了Nginx反向代理springboot的jar包過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • nginx日志分割 for linux

    nginx日志分割 for linux

    默認情況下,nginx是不分割訪問日志的,久而久之,網(wǎng)站的日志文件將會越來越大,占用空間不說,如果有問題要查看網(wǎng)站的日志的話,龐大的文件也將很難打開,于是便有了下面的腳本
    2013-11-11
  • 在linux中安裝nginx及在樹莓派ubuntu中安裝nginx的方法

    在linux中安裝nginx及在樹莓派ubuntu中安裝nginx的方法

    在進行軟件安裝時,若遇到報錯,常見的解決方法之一是檢查是否缺失依賴,并嘗試安裝所需的依賴包,記得去掉尖括號,對于nginx服務器,配置文件的位置和管理是關鍵操作之一,通過命令cd進入后,使用sudo nano index.nginx-debian.html命令打開并編輯默認的html文件
    2024-11-11
  • 詳解如何設置Nginx實現(xiàn)內外網(wǎng)端口映射

    詳解如何設置Nginx實現(xiàn)內外網(wǎng)端口映射

    在 Nginx 中實現(xiàn)內外網(wǎng)端口映射是一種常見的做法,本文詳細介紹如何設置 Nginx 實現(xiàn)內外網(wǎng)端口映射,有需要的小伙伴可以跟隨小編一起學習一下
    2024-10-10
  • linux上nginx安裝部署及使用過程詳解

    linux上nginx安裝部署及使用過程詳解

    這篇文章主要介紹了linux上nginx安裝部署及使用過程,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-11-11
  • 詳解Nginx如何配置Web服務器的示例代碼

    詳解Nginx如何配置Web服務器的示例代碼

    這篇文章主要介紹了詳解 Nginx如何配置Web服務器的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 讓Nginx支持shtml格式的配置方法

    讓Nginx支持shtml格式的配置方法

    這篇文章主要介紹了讓Nginx支持shtml格式的配置方法,shtml格式可以包含一些服務端指令,同PHP中的include功能類似,需要的朋友可以參考下
    2014-08-08
  • nginx簡單配置多個server的方法

    nginx簡單配置多個server的方法

    這篇文章主要介紹了nginx簡單配置多個server的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Nginx安裝配置的實現(xiàn)示例

    Nginx安裝配置的實現(xiàn)示例

    本文主要介紹了Nginx安裝配置的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12
  • Nginx使用ngx_http_upstream_module實現(xiàn)負載均衡功能示例

    Nginx使用ngx_http_upstream_module實現(xiàn)負載均衡功能示例

    本文主要介紹了Nginx使用ngx_http_upstream_module實現(xiàn)負載均衡功能示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08

最新評論