天天看點

九爺帶你了解 nginx HTTP子產品配置常用指令

一、HTTP子產品的作用是什麼?

Nginx的HTTP子產品用于控制Nginx的HTTP程序。

https://s5.51cto.com/wyfs02/M01/90/A7/wKioL1jxnGeyDhIWAAAvH6OE310464.jpg-wh_500x0-wm_3-wmp_4-s_2974193412.jpg https://s1.51cto.com/wyfs02/M00/90/A7/wKioL1jxnQzyaLTzAAAu4NiRW2E992.png-wh_500x0-wm_3-wmp_4-s_3871263201.png
九爺帶你了解 nginx HTTP子產品配置常用指令

二、配置指令

1. alias

含義:指定location使用的路徑,與root類似,但不改變檔案的跟路徑,僅适用檔案系統的路徑。

文法:alias <file-path | directory-path>

預設:N/A

作用域:http.server.location

示例:

複制代碼

代碼如下:

location /i/ {

    alias /home/michael/web/i/;

}

如請求 /i/logo.png 則傳回 /home/michael/web/i/logo.png。

注意:

(1)替換路徑時,可以使用變量。

(2)alias無法在正則的location中使用。如果有這種需求,則必須使用rewrite和root。

2. client_body_in_file_only

含義:指定是否将使用者請求體存儲到一個檔案裡。

文法:client_body_in_file_only <on | off>

預設:off

示例:client_body_in_file_only on;

(1)該指令為on時,使用者的請求體會被存儲到一個檔案中,但是請求結束後,該檔案也不會被删除;

(2)該指令一般在調試的時候使用。

3. client_body_buffer_size

含義:指定使用者請求體所使用的buffer的最大值

文法:client_body_buffer_size <size>

預設:兩個page的大小,一般為8k或16k

示例:client_body_buffer_size 512k;

注意:如果使用者請求體超過了buffer的大小,則将全部内容或部分内容存儲到一個臨時檔案中。

4. client_body_temp_path

含義:設定存儲使用者請求體的檔案的目錄路徑

文法:client_body_temp_path <directory path> [level1 | level2 | level3]

示例:client_body_temp_path /spool/nginx/client_temp 1 2;

5. client_body_timeout

含義:設定使用者請求體的逾時時間。

文法:client_body_timeout <time>

示例:client_body_timeout 120s;

注意:隻有請求體需要被1次以上讀取時,該逾時時間才會被設定。且如果這個時間後使用者什麼都沒發,nginx會傳回requests time out 408.

6. client_header_buffer_size

含義:設定使用者請求頭所使用的buffer大小

文法:client_header_buffer_size <size>

預設:1k

作用域:http.server

示例:client_header_buffer_size 2k;

(1)對絕大多數請求來說,1k足以滿足請求頭所需的buffer;

(2)對于攜帶有較大cookie或來自于wap使用者的請求頭來說,1k的buffer一般不夠,這時可以使用指令large_client_header_buffers。

7. client_header_timeout

含義:設定使用者請求頭的逾時時間。

文法:client_header_timeout <time>

預設:1m

示例:client_header_timeout 3m;

注意:隻有請求頭需要被1次以上讀取時,該逾時時間才會被設定。且如果這個時間後使用者什麼都沒發,nginx會傳回requests time out 408.

8. client_max_body_size

含義:設定所能接收的最大請求體的大小

文法:client_max_body_size <size>

示例:client_max_body_size 2m;

注意:根據請求頭中的Content-Length來判斷請求體大小是否允許。如果大于設定值,則傳回“ Request Entity Too Large”(413)錯誤。不過要注意的是,浏覽器一般并不對這個錯誤進行特殊顯示。

繼續閱讀