首頁 >運維 >Nginx >Nginx網路連線設定項有哪些?

Nginx網路連線設定項有哪些?

coldplay.xixi
coldplay.xixi原創
2020-06-29 16:55:103179瀏覽

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选项。

<span style="font-family:Microsoft Yahei, Hiragino Sans GB, Helvetica, Helvetica Neue, 微软雅黑, Tahoma, Arial, sans-serif">12、</span>tcp_nopush

语法:

tcp_nopush on | off;

默认:

tcp_nopush off;

配置块:http、server、location

在打开sendfile选项时,确定是否开启FreeBSD系统上的TCP_NOPUSH或Linux系统上的TCP_CORK功能。打开tcp_nopush后,将会在发送响应时把整个响应包头放到一个TCP包中发送。

以上是Nginx網路連線設定項有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn