我确实在使用 Google App Engine 部署 Node JS API 时遇到了麻烦,因为我总是遇到 502 错误。我见过很多关于这个主题的答案,但没有一个能帮我解决。
我在日志中发现以下错误:
"[error] 32#32: *4028 connect() failed (111: Connection refused) while connecting to upstream, client: 130.211.1.248, server: , request: "GET /_ah/health HTTP/1.1", upstream: "http://172.17.0.1:8080/_ah/health"
我的想法是更改上游 IP 地址,目前http://172.17.0.1:8080
,如何在 Google App Engine 中执行此操作?谢谢
答案1
“502”通常意味着负责处理 App Engine Flexible 实例请求的 nginx 代理无法与您的应用程序取得联系,并认为它不健康。这是通过健康检查nginx 执行的操作。
要测试确实如此,您只需在 yaml 配置文件中禁用健康检查,502 错误就会消失。请注意,如果您的应用程序太忙而无法响应,则还有其他更高级别的健康检查可能仍会运行并产生其他 502 错误。
为了确保应用程序能够处理健康检查,应用程序必须能够使用异步编程来响应并发请求。有许多公共指南可供参考,涵盖异步 Node.js 编程强烈建议在为云编写应用程序时研究这些范例。