HTTP Request 節點出現奇怪問題

嘿各位,我在使用 HTTP Request 節點時遇到了一個相當奇怪的問題。

這個請求應該呼叫一個 HTTPS API,但我沒有得到回應,反而 n8n 最後失敗並出現 502 Bad Gateway 錯誤。錯誤訊息提到 TLS 連線逾時的相關內容。

我已經檢查過 URL,從伺服器也能到達該端點,所以我不太確定這是 n8n 的問題、Node.js 的問題,還是 n8n 和 API 之間發生的情況。

嘿 @Juan_Pablo1,在等待回覆的同時,以下是一些可能有幫助的資源:

建議資源

自動符合您的問題。

文件:

論壇:

@Websensepro、@Florian_Delbes,你們之前幫助過類似的問題,可以看一下嗎?

由 n8n 的社群機器人自動建議。這是試點計畫 - 請在此分享意見反饋。

我之前在 HTTP Request 節點遇過 TLS 逾時的問題。通常是憑證問題,要不就是伺服器花太長時間完成握手。

你能分享一下你看到的確切錯誤訊息嗎?另外你執行的是哪個版本的 n8n,是自託管還是雲端版本?

如果從同一伺服器上的 curl 執行該端點沒有問題,那可能指向 n8n 的請求設定或 Node.js TLS 設定中的某些問題。

@Juan_Pablo1 開始前能否請你分享螢幕?

@Juan_Pablo1

502 結合 TLS 握手逾時通常更多指向連接在 HTTPS 會話完全建立之前被中斷,而不是 API 返回常規應用程式層級的錯誤。

我首先會檢查幾件事:

API 是否在反向代理或負載平衡器後面
n8n 容器是否可以建立到主機的 TLS 連接
nn8n 容器內的 DNS 解析
n8n 和 API 之間是否存在代理/防火牆
HTTP Request 節點的逾時值
問題是否始終發生,還是只在請求閒置一段時間後才發生

我不會立即開始更改 TLS 驗證設置或禁用憑證驗證。這樣做可能會隱藏實際問題。

你能為我分享兩張螢幕截圖嗎?

HTTP Request 節點的 Output/Error 面板
同一執行的 n8n 容器終端/日誌輸出

尤其是 ERR_TLS_HANDSHAKE_TIMEOUT 周圍的完整錯誤堆疊。

好的,請檢查一下這些是我的截圖


沒錯 @Juan_Pablo1 祝你今天愉快!,這給了我們更多可以著手的地方。

重要的部分其實不是 502 本身。更深層的錯誤是:

ERR_TLS_HANDSHAKE_TIMEOUT
客戶端網路套接字在建立安全 TLS 連線之前就斷開了。

堆疊追蹤顯示故障發生在 Node 的 HTTPS 客戶端嘗試建立連線時。

我建議從 n8n 容器內部進行故障排除,而不是先更改工作流程。

試試:

docker exec -it n8n-1 sh

然後測試 DNS 解析:

getent hosts api.example.com

並直接測試 TLS 握手:

openssl s_client -connect api.example.com:443 -servername api.example.com

如果在容器內部掛起或失敗,而同一個指令在主機上正常運作,那麼問題很可能出在容器的網路路徑、代理伺服器、防火牆或 DNS 配置中。

我還建議暫時將 HTTP Request 節點的逾時時間從 30 秒增加到 60 秒左右,以判斷這是否真的是握手速度慢,還是立即的網路中斷。

先不要禁用 TLS 憑證驗證。日誌顯示的是握手逾時,而不是憑證驗證錯誤,所以禁用驗證無法解決潛在的故障。

如果 openssl s_client 測試也掛起,請把那個輸出也傳送過來。這應該能讓我們判斷問題是出在 n8n/Axios 層面,還是更低層的連線問題。

嗯,讓我試試看 謝謝