2012-03-06 30 views
1

我們有一個運行很長時間的文件導入Rails進程。由於從Apache切換到Nginx,我們每次正好10分鐘後就開始發生504次超時錯誤 - 我們的nginx.conf中沒有任何地方設置10分鐘的限制。我已經看過幾個關於stackoverflow的問題/答案,但還沒有找到解決方案。我不想回到Apache,因爲我們喜歡Nginx的簡單性和速度,但是這使我瘋狂,因爲我已經嘗試了Nginx中的每個超時配置選項,我可以找到:-)長期運行Rails進程的Nginx + Passenger中的504錯誤

這是目前我在我們的nginx.conf文件中 - 我做錯了什麼?

http { 
    keepalive_timeout 300 300; 
    keepalive_requests 20; 
    send_timeout 30m; 
    proxy_read_timeout 30m; 
    proxy_connect_timeout 30m; 
    ... 

    server { 
     listen 80; 
    ... 
    server { 
     listen 443; 

回答

0

你遺漏了你的配置的重要部分,但我認爲你可能做了fastcgi_pass而不是proxy_pass。你會想看看這些指令client_header_timeout,client_body_timeout和send_timeout。

+0

謝謝,MTeck。實際上,client_header_timeout和client_body_timeout不在配置中的原因是因爲我已經嘗試過這些,並且它們不起作用。 send_timeout在配置中。另一件事:我假設超時字段都在http配置塊中,而不是服務器塊?提前致謝。 – anilscuba 2012-03-07 19:37:00

1

原來10分鐘是Nginx和Passenger硬編碼限制;直接從乘客手中收到此電子郵件:

將10分鐘超時硬編碼到Phusion乘客模塊中。 但是10分鐘實際上已經是Nginx 允許的最大超時時間,所以沒有辦法增加它。

相關問題