Google-Compute-Engine

需要 60 秒處理請求但在響應前超時的計算引擎實例

  • February 13, 2020

我有一個帶有 docker 映像的計算引擎 VM 實例。它有一個伺服器進行昂貴的計算,每個請求大約需要 2 分鐘。

伺服器完美響應小請求。對於較大的,它會響應以下內容:

<HEAD><TITLE>Connection Timed Out</TITLE></HEAD>
<BODY BGCOLOR="white" FGCOLOR="black">
<FONT FACE="Helvetica,Arial"><B>
Connection Timed Out</B></FONT>

<!-- default "Connection Timed Out" response (504) -->
</BODY>

我的 docker 容器中的伺服器不返回這個。

查看 504 錯誤的含義:

The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URI (e.g. HTTP, FTP, LDAP) or some other auxiliary server (e.g. DNS) it needed to access in attempting to complete the request.

Note: Note to implementors: some deployed proxies are known to return 400 or 500 when DNS lookups time out.

這清楚地表明計算引擎有一個代理在 30 秒後超時並給出上述響應。

查看堆棧驅動程序日誌,我看到我的伺服器確實收到了請求並處理了它,但在它完成之前,我得到了上面的響應。

如何阻止計算引擎干預我的伺服器邏輯?或者至少如何增加超時限制?

通過使用埠 8080 解決了該問題,除 80 之外的任何埠都可以使用。

出於某種原因,如果您不使用埠 80,GCE 不會干預您的事務。

引用自:https://serverfault.com/questions/1002959