一、HTTP模塊的作用是什么?
Nginx的HTTP模塊用于控制Nginx的HTTP進程。
二、配置指令
1. alias
含義:指定location使用的路徑,與root類似,但不改變文件的跟路徑,僅適用文件系統的路徑。
語法:alias <file-path | directory-path>
缺省:N/A
作用域:http.server.location
示例:
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
作用域:http.server.location
示例:client_body_in_file_only on;
注意:
(1)該指令為on時,用戶的請求體會被存儲到一個文件中,但是請求結束后,該文件也不會被刪除;
(2)該指令一般在調試的時候使用。
3. client_body_buffer_size
含義:指定用戶請求體所使用的buffer的最大值
語法:client_body_buffer_size <size>
缺省:兩個page的大小,一般為8k或16k
作用域:http.server.location
示例:client_body_buffer_size 512k;
注意:如果用戶請求體超過了buffer的大小,則將全部內容或部分內容存儲到一個臨時文件中。
4. client_body_temp_path
含義:設置存儲用戶請求體的文件的目錄路徑
語法:client_body_temp_path <directory path> [level1 | level2 | level3]
作用域:http.server.location
示例:client_body_temp_path /spool/nginx/client_temp 1 2;
5. client_body_timeout
含義:設置用戶請求體的超時時間。
語法:client_body_timeout <time>
作用域:http.server.location
示例: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
作用域:http.server.location
示例:client_header_timeout 3m;
注意:只有請求頭需要被1次以上讀取時,該超時時間才會被設置。且如果這個時間后用戶什么都沒發,nginx會返回requests time out 408.
8. client_max_body_size
含義:設置所能接收的最大請求體的大小
語法:client_max_body_size <size>
缺省:1m
作用域:http.server.location
示例:client_max_body_size 2m;
注意:根據請求頭中的Content-Length來判斷請求體大小是否允許。如果大于設定值,則返回“ Request Entity Too Large”(413)錯誤。不過要注意的是,瀏覽器一般并不對這個錯誤進行特殊顯示。