国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

詳解Nginx服務器中配置超時時間的方法

2024-08-30 12:27:52
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Nginx服務器中配置超時時間的方法,同時也對Nginx中的時間管理機制作了詳細的介紹,需要的朋友可以參考下
 

一、啥時候用到

       用來設置請求資源和服務器返回的時間,保證一個請求占用固定時間,超出后報504超時!這樣可以保證一個請求占用過長時間。

二、主要參數


      使用nginx服務器如果遇到timeou情況時可以如下設置參數,使用fastcgi:

         fastcgi_connect_timeout 75;  鏈接

         fastcgi_read_timeout 600;   讀取

         fastcgi_send_timeout 600;   發(fā)請求

     這兩個選項.
         fastcgi_read_timeout是指fastcgi進程向nginx進程發(fā)送response的整個過程的超時時間
         fastcgi_send_timeout是指nginx進程向fastcgi進程發(fā)送request的整個過程的超時時間

     這兩個選項默認都是秒(s),可以手動指定為分鐘(m),小時(h)等


三、其他常用參數以及參數說明


        keepalive_timeout  600;   連接超時時間,1分鐘,具體時間可以根據請求(例如后臺導入)需要的時間來設置

        proxy_connect_timeout 600;    1分鐘

        proxy_read_timeout 600;    1分鐘

 

nginx超時配置參數說明:

keepalive_timeout

語法 keepalive_timeout timeout [ header_timeout ]

默認值 75s

上下文 http server location

說明 第一個參數指定了與client的keep-alive連接超時時間。服務器將會在這個時間后關閉連接。可選的第二個參數指定了在響應頭Keep-Alive: timeout=time中的time值。這個頭能夠讓一些瀏覽器主動關閉連接,這樣服務器就不必要去關閉連接了。沒有這個參數,nginx不會發(fā)送Keep-Alive響應頭(盡管并不是由這個頭來決定連接是否“keep-alive”)

兩個參數的值可并不相同

注意不同瀏覽器怎么處理“keep-alive”頭

MSIE和Opera忽略掉"Keep-Alive: timeout=<N>" header.

MSIE保持連接大約60-65秒,然后發(fā)送TCP RST

Opera永久保持長連接

Mozilla keeps the connection alive for N plus about 1-10 seconds.

Konqueror保持長連接N秒

 

proxy_connect_timeout

語法 proxy_connect_timeout time

默認值 60s

上下文 http server location

說明 該指令設置與upstream server的連接超時時間,有必要記住,這個超時不能超過75秒。

這個不是等待后端返回頁面的時間,那是由proxy_read_timeout聲明的。如果你的upstream服務器起來了,但是hanging住了(例如,沒有足夠的線程處理請求,所以把你的請求放到請求池里稍后處理),那么這個聲明是沒有用的,由于與upstream服務器的連接已經建立了。

 

proxy_read_timeout

語法 proxy_read_timeout time

默認值 60s

上下文 http server location

說明 該指令設置與代理服務器的讀超時時間。它決定了nginx會等待多長時間來獲得請求的響應。這個時間不是獲得整個response的時間,而是兩次reading操作的時間。

 

client_header_timeout

語法 client_header_timeout time

默認值 60s

上下文 http server

說明 指定等待client發(fā)送一個請求頭的超時時間(例如:GET / HTTP/1.1).僅當在一次read中,沒有收到請求頭,才會算成超時。如果在超時時間內,client沒發(fā)送任何東西,nginx返回HTTP狀態(tài)碼408(“Request timed out”)

 

 

client_body_timeout

語法 client_body_timeout time

默認值 60s

上下文 http server location

說明 該指令設置請求體(request body)的讀超時時間。僅當在一次readstep中,沒有得到請求體,就會設為超時。超時后,nginx返回HTTP狀態(tài)碼408(“Request timed out”)

 

lingering_timeout

語法 lingering_timeout time

默認值 5s

上下文 http server location

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

 

resolver_timeout

語法 resolver_timeout time

默認值 30s

上下文 http server location

說明 該指令設置DNS解析超時時間

 

proxy_send_timeout

語法 proxy_send_timeout time

默認值 60s

上下文 http server location

說明 這個指定設置了發(fā)送請求給upstream服務器的超時時間。超時設置不是為了整個發(fā)送期間,而是在兩次write操作期間。如果超時后,upstream沒有收到新的數據,nginx會關閉連接

 

proxy_upstream_fail_timeout(fail_timeout)

語法 server address [fail_timeout=30s]

默認值 10s

上下文 upstream

說明 Upstream模塊下 server指令的參數,設置了某一個upstream后端失敗了指定次數(max_fails)后,該后端不可操作的時間,默認為10秒

四、實例

這里來看一個把Nginx的超時時間上調的例子。
看看時間是否符合要求,在nginx.config里面的三個參數:

  • fastcgi_connect_timeout 300;
  • fastcgi_send_timeout 300;
  • fastcgi_read_timeout 300;

以上的單位是秒。

如果使用了Nginx的代理,可以在塊里加上:

proxy_connect_timeout 300s;proxy_send_timeout 300s;proxy_read_timeout 300s;

變成:

location /foo {   proxy_pass http://xxx.xxx.xxx.xxx:8080/foo;   proxy_set_header Host $host;   proxy_set_header X-Real-IP $remote_addr;   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;   proxy_connect_timeout 300s;   proxy_send_timeout 300s;   proxy_read_timeout 300s;   access_log /var/log/nginx/access.foo.log main;   error_log /var/log/nginx/error.foo.log;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平远县| 安康市| 新田县| 广南县| 普定县| SHOW| 微博| 额敏县| 荣成市| 临江市| 泗阳县| 青铜峡市| 故城县| 昭通市| 高州市| 宜丰县| 天气| 黄陵县| 东至县| 惠水县| 尚义县| 邳州市| 海丰县| 长沙县| 赤壁市| 九江市| 陆河县| 怀仁县| 甘德县| 曲靖市| 灌阳县| 阳城县| 曲松县| 丰顺县| 巧家县| 攀枝花市| 永兴县| 阳曲县| 象山县| 龙门县| 沂水县|