細述 nginx http核心模組提供的變數和解釋

2022-03-19 23:10:07 字數 2243 閱讀 1112

ngx_http_core_module模組在處理請求時,會有大量的變數,這些變數可以通過訪問日誌來記錄下來,也可以用於其它nginx模組。

在我們對請求做策略如改寫等等都會使用到一些變數,順便對ngx_http_core_module模組提供的變數總結了下,如下所示:

引數名稱 注釋

$arg_parameter http 請求中某個引數的值,如/index.php?site=www.ttlsa.com,可以用$arg_site 取得www.ttlsa.com這個值.

$args http 請求中的完整引數。例如,在請求/index.php?width=400&height=200 中,$args表示字串width=400&height=200.

$body_bytes_sent 表示在向客戶端傳送的http響應中,包體部分的位元組數

$content_length 表示客戶端請求頭部中的content-length 字段

$content_type 表示客戶端請求頭部中的content-type 字段

$cookie_cookie 表示在客戶端請求頭部中的cookie 字段

$document_root 表示當前請求所使用的root 配置項的值

$uri 表示當前請求的uri,不帶任何引數

$document_uri 與$uri 含義相同

$request_uri 表示客戶端發來的原始請求uri,帶完整的引數。

$uri和$document_uri未必是使用者的原始請求,在內部重定向後可能是重定向後的uri,而$request_uri 永遠不會改變,始終是客戶端的原始uri.

$host 表示客戶端請求頭部中的host欄位。如果host欄位不存在,則以實際處理的server(虛擬主機)名稱代替。如果host欄位中帶有埠,如ip:port,那麼$host是去掉埠的,它的值為ip。

$host 是全小寫的。這些特性與http_header中的http_host不同,http_host只取出host頭部對應的值。

$hostname 表示 nginx所在機器的名稱,與 gethostbyname呼叫返回的值相同

$http_header 表示當前 http請求中相應頭部的值。header名稱全小寫。例如,示請求中 host頭部對應的值 用 $http_host表

$sent_http_header 表示返回客戶端的 http響應中相應頭部的值。header名稱全小寫。例如,用 $sent_ http_content_type表示響應中 content-type頭部對應的值

$is_args 表示請求中的 uri是否帶引數,如果帶引數,$is_args值為 ?,如果不帶引數,則是空字串

$limit_rate 表示當前連線的限速是多少,0表示無限速

$nginx_version 表示當前 nginx的版本號

$query_string 請求 uri中的引數,與 $args相同,然而 $query_string是唯讀的不會改變

$remote_addr 表示客戶端的位址

$remote_port 表示客戶端連線使用的埠

$remote_user 表示使用 auth basic module時定義的使用者名稱

$request_filename 表示使用者請求中的 uri經過 root或 alias轉換後的檔案路徑

$request_body 表示 http請求中的包體,該引數只在 proxy_pass或 fastcgi_pass中有意義

$request_body_file 表示 http請求中的包體儲存的臨時檔名

$request_completion 當請求已經全部完成時,其值為 「ok」。若沒有完成,就要返回客戶端,則其值為空字串;或者在斷點續傳等情況下使用 http range訪問的並不是檔案的最後一塊,那麼其值也是空字串。

$request_method 表示 http請求的方法名,如 get、put、post等

$scheme 表示 http scheme,如在請求 中表示 https

$server_addr 表示伺服器位址

$server_name 表示伺服器名稱

$server_port 表示伺服器端口

$server_protocol 表示伺服器向客戶端傳送響應的協議,如 http/1.1或 http/1.0

Nginx Http模組開發

關於nginx http模組開發的文章非常少,只有emiler的那篇關於http模組的文章,但是那篇文章裡面,並沒有說到事件型的模組如何進行開發。而且文章裡面提到的內容實在是讓人有點意猶未盡。因此,對於http事件型模組的開發進行了一些總結,與大家分享。但是,無論如何,要進行nginx模組開發,最好...

nginx HTTP過濾模組的呼叫流程

在content階段時,會生成返回給使用者的響應內容,對使用者的響應內容,實際上還要做加工處理,http過濾模組就是對響應內容做加工處理的。就是在content階段之後,log階段之前去介入請求處理 gzip filter 必須要在 copy filter模組之後。gzip filter需要對記憶體...

Python核心模組 urllib模組

現在python基本入門了,現在開始要進軍如何寫爬蟲了!先把最基本的urllib模組弄懂吧。開啟乙個url的方法,返回乙個檔案物件,然後可以進行類似檔案物件的操作。本例試著開啟google import urllib f urllib.urlopen firstline f.readline 讀取h...