一、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二、配置指令
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)錯誤。不過要注意的是,浏覽器一般并不對這個錯誤進行特殊顯示。