OpenResty Edge 的訪問日誌變數

HTTP 變數

  • args: 請求行中的引數。
  • realip_remote_addr: 原始客戶端地址。
  • realip_remote_port: 原始客戶端埠。
  • binary_remote_addr: 以二進位制形式表示的客戶端地址,值的長度對於 IPv4 地址始終為 4 位元組,對於 IPv6 地址始終為 16 位元組。
  • body_bytes_sent: 傳送到客戶端的位元組數,不包括響應頭。
  • bytes_sent: 傳送給客戶端的位元組數。
  • total_bytes: 請求體和響應體的位元組數之和。
  • connection: 連線序列號。
  • connection_requests: 透過當前連線傳送的請求數。
  • connections_active: 當前活動的客戶端連線數,包括“等待”連線。
  • connections_reading: 正在讀取請求頭的連線數。
  • connections_waiting: 正在等待請求的空閒客戶端連線數。
  • connections_writing: 正在將響應寫回客戶端的連線數。
  • content_length: 請求頭欄位 Content-Length 的值。
  • content_type: 請求頭欄位 Content-Type 的值。
  • date_gmt: 當前的 GMT 時間。
  • date_local: 當前的本地時間。
  • document_uri: 和 $uri 相同。
  • gzip_ratio: 壓縮比,即壓縮後的大小佔原始大小的比例。
  • host: 請求行中的主機名或請求頭 Host 欄位中的主機名。
  • hostname: 主機名。
  • http2: 透過瀏覽器和伺服器之間協商的應用層協議版本識別符號:TLS 上的 HTTP/2 識別符號為 h2,未加密的 TCP 上的 HTTP/2 識別符號為 h2c,否則為空字串。
  • https: 當連線以 SSL 模式執行時,值為 on,否則為空字串。
  • invalid_referer: 如果條件滿足,即 Referer 請求頭欄位的值合法,則為空字串,否則為 1
  • is_args: 如果請求行有引數,則為 ?,否則為空字串。
  • msec: 當前毫秒精度下的秒數表示的時間。
  • pid: 工作程序的 PID。
  • pipe: 請求是否透過管道傳輸,若是則為 p,否則為 .
  • proxy_add_x_forwarded_for: 包含 $remote_addr 變數並以逗號分隔附加到 X-Forwarded-For 客戶端請求頭欄位中。如果客戶端請求頭中不存在 X-Forwarded-For 欄位,則 $proxy_add_x_forwarded_for 變數等於變數 $remote_addr
  • proxy_host: 代理伺服器的名稱和埠號。
  • proxy_port: 代理伺服器的埠號。
  • query_string: 與 $args 相同。
  • remote_addr: 客戶端地址。
  • remote_port: 客戶端埠號。
  • remote_user: Basic 認證的使用者名稱。
  • request: 完整的原始請求行。
  • request_body: 請求體。
  • request_body_file: 帶有請求訊息正文的臨時檔名稱。
  • request_completion: 如果請求已完成,則為 OK,否則為空字串。
  • request_id: 以十六進位制表示的由 16 位元組隨機數生成的唯一請求識別符號。
  • request_length: 請求的長度(包括請求行、頭部和正文)。
  • request_method: 請求方法,通常為 GETPOST
  • request_time: 請求處理時間,以秒為單位,毫秒精度;自從讀取客戶端的第一個位元組以來經過的時間。
  • request_uri: 完整的原始請求 URI(包括引數)。
  • req_id: 唯一的請求識別符號。
  • scheme: 請求協議名稱,httphttps
  • server_addr: 接受請求的伺服器地址。
  • server_name: 接受請求的伺服器名稱。
  • server_port: 接受請求的伺服器埠號。
  • server_protocol: 請求協議,通常為 HTTP/1.0HTTP/1.1HTTP/2.0HTTP/3.0
  • spdy: SPDY 連線的協議版本,否則為空字串。
  • spdy_request_priority: SPDY 連線上的請求優先順序,否則為空字串。
  • ssl_cipher: 返回已建立 SSL 連線所使用的密碼名稱。
  • ssl_ciphers: 返回客戶端支援的密碼列表。已知密碼按名稱列出,未知密碼顯示為十六進位制,例如:AES128-SHA:AES256-SHA:0x00ff
  • ssl_client_cert: 返回已建立 SSL 連線的客戶端證書的 PEM 格式,每行除第一行外都以製表符開頭。
  • ssl_client_fingerprint: 返回已建立 SSL 連線的客戶端證書的 SHA1 指紋。
  • ssl_client_escaped_cert: 返回已建立 SSL 連線的客戶端證書的 PEM 格式(經過 URL 編碼)。
  • ssl_client_i_dn: 返回已建立 SSL 連線的客戶端證書的issuer DN,根據 RFC 2253 規定。
  • ssl_client_i_dn_legacy: 返回已建立 SSL 連線的客戶端證書的issuer DN
  • ssl_client_raw_cert: 返回已建立 SSL 連線的客戶端證書的 PEM 格式。
  • ssl_client_s_dn: 返回已建立 SSL 連線的客戶端證書的主題 DN 字串,根據 RFC 2253 規定。
  • ssl_client_s_dn_legacy: 返回已建立 SSL 連線的客戶端證書的subject DN DN
  • ssl_client_serial: 返回已建立 SSL 連線的客戶端證書的序列號。
  • ssl_client_v_end: 返回客戶端證書的結束日期。
  • ssl_client_v_remain: 返回客戶端證書到期剩餘天數。
  • ssl_client_v_start: 返回客戶端證書的開始日期。
  • ssl_client_verify: 返回客戶端證書驗證結果:SUCCESS 表示驗證成功,FAILED:reason 表示驗證失敗並給出原因,如果沒有證書則返回 NONE
  • ssl_curves: 返回客戶端支援的曲線列表。已知曲線按名稱列出,未知曲線顯示為十六進位制,例如:0x001d:prime256v1:secp521r1:secp384r1
  • ssl_early_data: 如果使用 TLS 1.3 的 early data,並且握手未完成,則返回1;否則為空字串。
  • ssl_preread_alpn_protocols: 透過 ALPN 廣告的客戶端協議列表。值由逗號分隔。
  • ssl_preread_protocol: 客戶端支援的最高 SSL 協議版本。
  • ssl_preread_server_name: 透過 SNI 請求的伺服器名稱。
  • ssl_protocol: 返回已建立 SSL 連線的協議。
  • ssl_server_name: 返回透過 SNI 請求的伺服器名稱。
  • ssl_session_id: 返回已建立 SSL 連線的會話識別符號。
  • ssl_session_reused: 返回 r 表示 SSL 會話已重用,否則為 .
  • status: 響應狀態碼。
  • tcpinfo_rcv_space/tcpinfo_rtt/tcpinfo_rttvar/tcpinfo_snd_cwnd: 關於客戶端 TCP 連線的資訊;僅在支援 TCP_INFO 套接字選項的系統上可用。
  • time_iso8601: 當地時間,ISO 8601 標準格式。
  • time_local: 當地時間,通用日誌格式(Common Log)。
  • time_local_msec: 當地時間,毫秒精度在通用日誌格式中。
  • upstream_addr: 上游伺服器的 IP 地址和埠,或 UNIX 域套接字的路徑。如果在請求處理期間聯絡了多個伺服器,則它們的地址以逗號分隔,例如192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock
  • upstream_bytes_received: 接收自上游伺服器的位元組數。來自多個連線的值由逗號和冒號分隔,就像在 $upstream_addr 變數中的地址一樣。
  • upstream_bytes_sent: 傳送到上游伺服器的位元組數。來自多個連線的值由逗號和冒號分隔,就像在 $upstream_addr 變數中的地址一樣。
  • upstream_cache_status: 訪問響應快取的狀態。狀態可以是MISSBYPASSEXPIREDSTALEUPDATINGREVALIDATEDHIT
  • upstream_connect_time: 與上游伺服器建立連線所花費的時間;時間以毫秒為精度,以秒為單位。對於 SSL,包括握手時間。多個連線的時間以逗號和冒號分隔,就像在 $upstream_addr 變數中的地址一樣。
  • upstream_first_byte_time: 接收資料第一個位元組所需的時間;時間以毫秒為精度,以秒為單位。多個連線的時間以逗號分隔,就像在 $upstream_addr 變數中的地址一樣。
  • upstream_header_time: 從上游伺服器接收響應頭所花費的時間;時間以毫秒為精度,以秒為單位。多個響應的時間以逗號和冒號分隔,就像在 $upstream_addr 變數中的地址一樣。
  • upstream_queue_time: 請求在上游佇列中花費的時間;時間以毫秒為精度,以秒為單位。多個響應的時間以逗號和冒號分隔,就像在 $upstream_addr 變數中的地址一樣。
  • upstream_response_length: 從上游伺服器獲取的響應長度;長度以位元組為單位。多個響應的長度以逗號和冒號分隔,就像在 $upstream_addr 變數中的地址一樣。 。
  • upstream_response_time: 從上游伺服器接收響應所花費的時間;時間以毫秒為精度,以秒為單位。多個響應的時間以逗號和冒號分隔,就像在 $upstream_addr 變數中的地址一樣。
  • upstream_session_time: 以毫秒為精度的會話持續時間,以秒為單位。多個連線的時間以逗號分隔,就像在 $upstream_addr 變數中的地址一樣。
  • upstream_status: 從上游伺服器獲取的響應狀態碼。多個響應的狀態碼以逗號和冒號分隔,就像在 $upstream_addr 變數中的地址一樣。如果無法選擇伺服器,則該變數為 502(Bad Gateway)狀態碼。
  • uri: 規範化後的當前請求 URI。在請求處理過程中,$uri 的值可能會更改,例如當進行內部重定向或使用索引檔案時。
  • app_id: OpenResty Edge 的 HTTP 應用 ID。
  • internal_request: 是否是內部請求。
  • limit_action: 限制動作,如 block
  • response_body: 響應體。
  • proxy_protocol_addr: PROXY 協議頭中的客戶端地址。
  • proxy_protocol_port: PROXY 協議頭中的客戶端埠。
  • client_isp: 客戶端網際網路服務提供商(Internet Service Provider)。這表示訪問者使用的網路服務提供商,如 Comcast、Verizon、中國電信等。該變數在 v24.9.1 版本中首次引入。
  • client_asn: 客戶端自治系統編號(Autonomous System Number)。這是一個用於標識網際網路上的路由域的唯一識別符號。每個 ISP 或大型網路通常都有自己的 ASN。該變數在 v24.9.1 版本中首次引入。
  • client_country: 客戶端所在國家。這表示訪問者的 IP 地址所對應的國家,如中國、美國、日本等。該變數在 v24.9.1 版本中首次引入。
  • client_continent: 客戶端所在大洲。這表示訪問者的 IP 地址所對應的大洲,如亞洲、北美洲、歐洲等。該變數在 v24.9.1 版本中首次引入。
  • client_province: 客戶端所在省份或州。這表示訪問者的 IP 地址所對應的省份(在中國)或州(在美國等國家),如廣東省、加利福尼亞州等。該變數在 v24.9.1 版本中首次引入。
  • client_city: 客戶端所在城市。這表示訪問者的 IP 地址所對應的城市,如北京、紐約、東京等。該變數在 v24.9.1 版本中首次引入。

HTTP 固定字首變數

  • arg_: 請求行中的引數名稱。
  • upstream_trailer_: 從上游伺服器獲取的響應末尾的欄位。
  • upstream_http_: 伺服器響應頭欄位。例如,Server 響應頭欄位可透過 $upstream_http_server 變數訪問。將頭欄位名稱轉換為變數名稱的規則與以 $http_ 字首開頭的變數相同。僅儲存最後一個伺服器響應的頭欄位。
  • sent_http_: 任意的響應頭欄位;變數名稱的最後一部分是欄位名稱,轉換為小寫並用下劃線代替破折號。
  • sent_trailer_: 傳送到響應末尾的任意欄位;變數名稱的最後一部分是欄位名稱,轉換為小寫並用下劃線代替破折號。
  • cookie_: cookie 的名稱。
  • http_: 任意的請求頭欄位;變數名稱的最後一部分是欄位名稱,轉換為小寫並用下劃線代替破折號。
  • upstream_cookie_: 上游伺服器在Set-Cookie響應頭欄位中傳送的具有指定名稱的 cookie。僅儲存最後一個伺服器響應中的 cookie。
  • or-global-: OpenResty Edge 的全域性變數。

Stream 變數

  • binary_remote_addr: 以二進位制形式表示的客戶端地址,IPv4 地址的值長度始終為 4 位元組,IPv6 地址的值長度為 16 位元組。
  • bytes_sent: 傳送給客戶端的位元組數。
  • connection: 連線序列號。
  • hostname: 主機名。
  • msec: 當前時間(以秒為單位,毫秒為精度)。
  • pid: 工作程序的 PID。
  • proxy_protocol_addr: 來自 PROXY 協議頭的客戶端地址。
  • proxy_protocol_port: 來自 PROXY 協議頭的客戶端埠。
  • proxy_protocol_server_addr: 來自 PROXY 協議頭的伺服器地址。
  • proxy_protocol_server_port: 來自 PROXY 協議頭的伺服器埠。
  • remote_addr: 客戶端地址。
  • remote_port: 客戶端埠。
  • server_addr: 接受連線的伺服器地址。
  • server_port: 接受連線的伺服器埠。
  • ssl_cipher: 返回用於建立 SSL 連線的加密演算法名稱。
  • ssl_ciphers: 返回客戶端支援的密碼列表。已知的密碼按名稱列出,未知的密碼以十六進位制表示,例如:AES128-SHA:AES256-SHA:0x00ff
  • ssl_client_cert: 返回已建立的 SSL 連線中客戶端證書的 PEM 格式。除第一行外,每行字首為製表符。
  • ssl_client_fingerprint: 返回已建立的 SSL 連線中客戶端證書的 SHA1 指紋。
  • ssl_client_i_dn: 返回已建立的 SSL 連線中客戶端證書的 issuer DN,格式符合 RFC 2253。
  • ssl_client_raw_cert: 返回已建立的 SSL 連線中客戶端證書的 PEM 格式。
  • ssl_client_s_dn: 返回已建立的 SSL 連線中客戶端證書的 subject DN,格式符合 RFC 2253。
  • ssl_client_serial: 返回已建立的 SSL 連線中客戶端證書的序列號。
  • ssl_client_v_end: 返回客戶端證書的到期日期。
  • ssl_client_v_remain: 返回到客戶端證書過期的天數。
  • ssl_client_v_start: 返回客戶端證書的起始日期。
  • ssl_client_verify: 返回客戶端證書驗證的結果:SUCCESSFAILED:reason 和如果證書不存在則為 NONE
  • ssl_curves: 返回客戶端支援的曲線列表。已知的曲線按名稱列出,未知的曲線以十六進位制表示,例如:0x001d:prime256v1:secp521r1:secp384r1
  • ssl_protocol: 返回已建立的 SSL 連線的協議。
  • ssl_server_name: 返回透過 SNI 請求的伺服器名稱。
  • ssl_session_id: 返回已建立的 SSL 連線的會話 ID。
  • ssl_session_reused: 如果 SSL 會話被重新使用,則返回 r;否則返回 .
  • time_iso8601: 本地時間,在 ISO 8601 標準格式下顯示。
  • time_local: 本地時間,在通用日誌格式格式下顯示。
  • time_local_msec: 毫秒精度的本地時間,在通用日誌格式下顯示。
  • upstream_addr: 上游伺服器的 IP 地址和埠號,或 UNIX 域套接字的路徑。如果在請求處理期間與多個伺服器聯絡,則它們的地址用逗號分隔,例如 192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock
  • upstream_bytes_received: 從上游伺服器接收的位元組數。幾個連線的值用逗號和冒號分隔,就像 $upstream_addr 變數中的地址一樣。
  • upstream_bytes_sent: 傳送到上游伺服器的位元組數。幾個連線的值用逗號和冒號分隔,就像 $upstream_addr 變數中的地址一樣。
  • upstream_connect_time: 與上游伺服器建立連線所花費的時間;時間用秒錶示,毫秒為精度。在 SSL 的情況下,包括用於握手的時間。幾次連線的時間以逗號和冒號分隔,就像 $upstream_addr 變數中的地址一樣。

Socks5 變數

  • time: 請求開始的本地時間。
  • request_time: 請求開始的時間。
  • up_bytes: 請求的位元組數。
  • down_bytes: 響應的位元組數。
  • proxy_port: 代理伺服器的埠。
  • client_addr: 客戶端地址。
  • username: 使用者名稱。
  • upstream_host: 上游主機名。
  • upstream_port: 上游埠。
  • status: 狀態碼。
  • bandwidth: 頻寬規則名稱。
  • failure: 失敗原因

HTTP 正向代理變數

  • time:請求開始的本地時間。
  • up_bytes:請求的位元組數。
  • down_bytes:響應的位元組數。
  • proxy_port:代理伺服器埠。
  • client_addr:客戶端地址。
  • upstream_host:上游地址。
  • upstream_port:上游埠。
  • method:請求方法。
  • status:請求狀態碼。
  • failure:失敗原因。
  • account_key:賬號關鍵字。
  • account:賬號。
  • pa_:代理鑑權的資訊。
  • header_:請求頭部資訊,如 header_host。
  • arg_:URI 引數資訊,如 arg_name。
  • decoded_proxy_authorization:解碼後的代理鑑權資訊。