架構師日記 Nginx的HTTP模組配置

2021-08-04 08:01:54 字數 3817 閱讀 1521

}}core module支援一些內建的變數,與apache使用的變數相一致。

首先,一些變數代表了客戶端請求頭部的一些字段,如:$http_user_agent, $http_cookie等等。注意,由於這些變數會在請求中定義,所以可能無法保證他們是存在的或者說可以定義到一些別的地方(例如遵循一定的規範)。

除此之外,下列是一些其他變數:

1.$arg_parameter

這個變數包含在查詢字串時get請求parameter的值。

2.$args

這個變數等於請求行中的引數。

3.$binary_remote_addr

二進位製碼形式的客戶端位址。

4.$content_length

請求頭中的content-length欄位。

5.$content_type

請求頭中的content-type欄位。

6.$cookie_cookie

cookie cookie的值。

7.$document_root

當前請求在root指令中指定的值。

8.$document_uri

與$uri相同。

9.$host

請求中的主機頭欄位,如果請求中的主機頭不可用,則為伺服器處理請求的伺服器名稱。

10.$is_args

如果$args設定,值為」?」,否則為」「。

11.$limit_rate

這個變數可以限制連線速率。

12.$nginx_version

當前執行的nginx版本號。

13.$query_string

與$args相同。

14.$remote_addr

客戶端的ip位址。

15.$remote_port

客戶端的埠。

16.$remote_user

已經經過auth basic module驗證的使用者名稱。

17.$request_filename

當前連線請求的檔案路徑,由root或alias指令與uri請求生成。

18.$request_body

這個變數(0.7.58+)包含請求的主要資訊。在使用proxy_pass或fastcgi_pass指令的location中比較有意義。

19.$request_body_file

客戶端請求主體資訊的臨時檔名。

20.$request_method

這個變數是客戶端請求的動作,通常為get或post。

包括0.8.20及之前的版本中,這個變數總為main request中的動作,如果當前請求是乙個子請求,並不使用這個當前請求的動作。

21.$request_uri

這個變數等於包含一些客戶端請求引數的原始uri,它無法修改,請檢視$uri更改或重寫uri。

22.$scheme

http方法(如http,https)。按需使用,例:

rewrite ^(.+)

scheme: redirect;

23.$server_addr

伺服器位址,在完成一次系統呼叫後可以確定這個值,如果要繞開系統呼叫,則必須在listen中指定位址並且使用bind引數。

24.$server_name

伺服器名稱。

25.$server_port

請求到達伺服器的埠號。

26.$server_protocol

請求使用的協議,通常是http/1.0或http/1.1。

27.$uri

請求中的當前uri(不帶請求引數,引數位於ar

gs),

可以不同

於瀏覽器

傳遞的request_uri的值,它可以通過內部重定向,或者使用index指令進行修改。

location區段,通過制定模式來與客戶端請求的uri相匹配,基本語法如下:location[=|~|~*|^~|@] pattern

1. 沒有修飾符表示:必須以制定模式開始

如:

server

}

那麼,如下的uri是匹配的:

2.表示必須與制定的模式精確匹配

如:

server

}

那麼,如下的uri是匹配的:

如下的uri是不匹配的:

3.~表示:制定的正規表示式要區分大小寫

server

}

那麼,如下的uri是匹配的:

如下的uri是不匹配的:

4.~*表示:制定的正規表示式不區分大小寫

server

}

那麼,如下的uri是匹配的:

如下的uri是不匹配的:

5.^~類似於無修飾符的行為,也是以制定模式開始,不同的是,如果模式匹配,那麼就停止搜尋其他模式了。

6.@:定義命名location區段,這些區段客戶端不能訪問,只可以由內部昌盛的請求來訪問,如:try_files或error_page等。

帶有「=」的精確匹配優先

沒有修飾符的精確匹配

正規表示式按照他們在配置檔案中定義的順序

帶有「^~」修飾符的,開頭匹配

帶有「~」或「~*」修飾符的,如果正規表示式與uri匹配

沒有修飾符的,如果指定字串與uri開頭匹配

架構師日記 Nginx的配置優化

優化的方向和目標,無外乎 1.盡量提高單台機器處理效率 2.盡量降低單台機器的負載 3.盡量降低磁碟的i o 4.盡量降低網路i o 5.儘量減少記憶體使用 6.盡量高效利用cpu 生產環境下,應該使nginx模組最小化,就是用到哪幾個就開哪幾個,這個需要在編譯安裝nginx的時候做 使用者和組,最...

我的架構師夢想日記

第四天 今天想了想還是把rhce的班報了吧,本來想等ocp考完之後再報的,但是某某培訓機構比較坑,非得過了年才能考,好吧。問吳總能不能公司出錢幫我出點錢讓我考這個證,吳總說公司從來沒有過這個先例,這我在我的預料之中,考ocp的錢都是我自己出的,但是還是有一點點小小的失望。今天去拱墅了,又是一通加班,...

我的架構師夢想日記

做相關工作的可以看下 最近不更新,等我先到新公司入職了再繼續吧。今天被優衣庫的刷屏了,我來分享點正能量吧 今天看到一篇支付寶的關於支付寶安全性的介紹,深深感覺資料分析的威力,支付寶不再單一的依靠密碼 手機號等來保證使用者資金的安全性,而是使用 安全大腦 這個安全大腦會不斷學習使用者的習慣,了解主人的...