2014-03-07 50 views
1

我是新來的nginx和現在學習它:),我需要設置proxy_send_timeout一些幫助,我需要設置這隻有當url有'stime'在這裏是我在做什麼:只有當url具有特定的參數時,Nginx纔會設置proxy_send_timeout

if ($arg_stime != ""){ 
    proxy_send_timeout 15; 
    proxy_read_timeout 15; 
} 

但nginx的沒有啓動,並給出以下錯誤:

4901#0: 「proxy_send_timeout」 指令在這裏不允許使用在default.conf

任何建議,謝謝

最好的問候

Sajid

回答

2

不能使用內部ifproxy_read_timeout/proxy_send_timeout,但有辦法解決這個。

下面是示例代碼:

server { 
    # ... 

    error_page 555 = @normal; 
    error_page 556 = @stime; 

    location/{ 
     if ($arg_stime != '') { 
      return 556; 
     } 
     return 555; 
    } 

    location @normal { 
     proxy_pass ...; 
     # ...other proxy directives... 
    } 

    location @stime { 
     proxy_pass ...; 
     # ...other proxy directives... 
     proxy_send_timeout 15s; 
     proxy_read_timeout 15s; 
    } 
} 

我們用創意來自「If is Evil」選擇什麼location將繼續我們的請求。

+0

thx,我要去試一試,但是這裏有一個問題,我沒有得到回報556會使這個執行?位置@stime { proxy_pass ...; #...其他代理指令... proxy_send_timeout 15s; proxy_read_timeout 15s; } – Sajid

+0

返回556將觸發error_page指令 –

相關問題