Nginx網絡連接配置項有哪些?

nginx網絡連接配置項有:1、讀取http頭部的超時時間;2、讀取HTTP包體的超時時間;3、發送響應的超時時間;4、重置超時連接選項。

Nginx網絡連接配置項有哪些?

Nginx網絡連接配置項有:

1、讀取HTTP頭部的超時時間

語法:

client_header_timeout?time(默認單位:秒);

默認:

client_header_timeout?60;

配置塊:http、server、location

客戶端與服務器建立連接后將開始接收HTTP頭部,在這個過程中,如果在一個時間間隔(超時時間)內沒有讀取到客戶端發來的字節,則認為超時,并向客戶端返回408 (“Request timed out”)響應。

推薦教程:nginx快速入門教程

2、讀取HTTP包體的超時時間

語法:

client_body_timeout?time(默認單位:秒);

默認:

client_body_timeout?60;

配置塊:http、server、location

此配置項與client_header_timeout相似,只是這個超時時間只在讀取HTTP包體時才有效。

3、發送響應的超時時間

語法:

send_timeout?time;

默認:

send_timeout?60;

配置塊:http、server、location

這個超時時間是發送響應的超時時間,即Nginx服務器向客戶端發送了數據包,但客戶端一直沒有去接收這個數據包。如果某個連接超過send_timeout定義的超時時間,那么Nginx將會關閉這個連接。

4、 重置超時連接選項

語法:

reset_timeout_connection?on?|?off;

默認:

reset_timeout_connection?off;

配置塊:http、server、location

連接超時后將通過向客戶端發送RST包來直接重置連接。這個選項打開后,Nginx會在某個連接超時后,不是使用正常情形下的四次握手關閉TCP連接,而是直接向用戶發送RST重置包,不再等待用戶的應答,直接釋放Nginx服務器上關于這個套接字使用的所有緩存(如TCP滑動窗口)。相比正常的關閉方式,它使得服務器避免產生許多處于FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT狀態的TCP連接。

注意,使用RST重置包關閉連接會帶來一些問題,默認情況下不會開啟。

5、lingering_close

語法:

lingering_close?off?|?on?|?always;

默認:

lingering_close?on;

配置塊:http、server、location

該配置控制Nginx關閉用戶連接的方式。always表示關閉用戶連接前必須無條件地處理連接上所有用戶發送的數據。off表示關閉連接時完全不管連接上是否已經有準備就緒的來自用戶的數據。on是中間值,一般情況下在關閉連接前都會處理連接上的用戶發送的數據,除了有些情況下在業務上認定這之后的數據是不必要的。

6、lingering_time

語法:

lingering_time?time;

默認:

lingering_time?30s;

配置塊:http、server、location

lingering_close啟用后,這個配置項對于上傳大文件很有用。上文講過,當用戶請求的Content-Length大于max_client_body_size配置時,Nginx服務會立刻向用戶發送413(Request entity too large)響應。但是,很多客戶端可能不管413返回值,仍然持續不斷地上傳HTTP body,這時,經過了lingering_time設置的時間后,Nginx將不管用戶是否仍在上傳,都會把連接關閉掉。

7、?lingering_timeout

語法:

lingering_timeout?time;

默認:

lingering_timeout?5s;

配置塊:http、server、location

lingering_close生效后,在關閉連接前,會檢測是否有用戶發送的數據到達服務器,如果超過lingering_timeout時間后還沒有數據可讀,就直接關閉連接;否則,必須在讀取完連接緩沖區上的數據并丟棄掉后才會關閉連接。

8、對某些瀏覽器禁用keepalive功能

語法:

keepalive_disable?[?msie6?|?safari?|?none?]...

默認:

keepalive_disable??msie6?safari

配置塊:http、server、location

HTTP請求中的keepalive功能是為了讓多個請求復用一個HTTP長連接,這個功能對服務器的性能提高是很有幫助的。但有些瀏覽器,如IE 6和Safari,它們對于使用keepalive功能的POST請求處理有功能性問題。因此,針對IE 6及其早期版本、Safari瀏覽器默認是禁用keepalive功能的。

8、?keepalive超時時間

語法:

keepalive_timeout?time(默認單位:秒);

默認:

keepalive_timeout?75;

配置塊:http、server、location

一個keepalive 連接在閑置超過一定時間后(默認的是75秒),服務器和瀏覽器都會去關閉這個連接。當然,keepalive_timeout配置項是用來約束Nginx服務器的,Nginx也會按照規范把這個時間傳給瀏覽器,但每個瀏覽器對待keepalive的策略有可能是不同的。

10、一個keepalive長連接上允許承載的請求最大數

語法:

keepalive_requests?n;

默認:

keepalive_requests?100;

配置塊:http、server、location

一個keepalive連接上默認最多只能發送100個請求。

11、 tcp_nodelay

語法:

tcp_nodelay?on?|?off;

默認:

tcp_nodelay?on;

配置塊:http、server、location

確定對keepalive連接是否使用TCP_NODELAY選項。

12、tcp_nopush

語法:

tcp_nopush?on?|?off;

默認:

tcp_nopush?off;

配置塊:http、server、location

在打開sendfile選項時,確定是否開啟FreeBSD系統上的TCP_NOPUSH或linux系統上的TCP_CORK功能。打開tcp_nopush后,將會在發送響應時把整個響應包頭放到一個TCP包中發送。

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享