2017-02-02 130 views
0

我已經成功地運行了一個在Amazon AWS Elastic BeansTalk提供的基本示例應用程序上運行的java servlet應用程序的測試。 Java-Gradle-Jetty平臺。 現在,無論我做什麼,我都無法實現將servlet與客戶端連接超過50秒。 我試過的東西。 Nginx proxy_read_timeout的作品! proxy_send_timeout不起作用。 負載平衡器空閒超時工作.. keepalive_timeout不起作用。AWS Elastic BeansTalk Nginx超時504錯誤網關 - Java Servlet AsyncContext

我已經玩過這些和一些更多的設置,所以我越來越熟悉,可以限制或緩衝超時,但只有50秒。通過,我得到一個504錯誤的網關錯誤,這意味着連接已關閉。 我也在nginx服務器的error.log中得到這個錯誤。當從上游讀取響應頭時,客戶端:{某些IP},服務器:,請求:「GET/{某個路徑} HTTP上傳超時(110:連接超時)時發生錯誤23115#0:* 2錯誤23115#0: /1.1「,上游:」http://127.0.0.1:5000/publish「,主機:」{一些負載平衡器URL} .us-west-1.elb.amazonaws.com「

任何幫助將不勝感激我現在已經度過了幾個不眠之夜。

+0

這裏是我用作參考的代碼的鏈接。 [link_to_code](http://stackoverflow.com/questions/8081895/implementing-long-polling-in-an-asynchronous-fashion) – gerfmarquez

回答

0

它最終成爲需要在位置部分下的nginx配置文件上傳遞的兩個屬性。

proxy_send_timeout 和 proxy_read_timeout

只需將它們設置爲任何時候你想有在幾秒鐘內與ELB組合(負載平衡器)超時。

希望對某人有用。

+0

此外,每次通過Elastic Beans進行部署時,都會覆蓋配置文件。 – gerfmarquez

+0

在我的'.elasticbeanstalk/config.yml'中是否有位置?我可以爲此添加一行?我一直在研究一天中哪一天它已經結束了,並且沒有爲env或ELB級別設置elasticbeanstalk配置,並且希望你可以在我可以添加這些配置設置的地方闡明一些信息 – Relic