Nod*_*bie 30 google-app-engine nginx node.js
我正在使用App Engine在Google Cloud Platform上托管Web应用程序,我使用的是ExpressJS和MongoDB,它位于mLab上.
一切顺利到2017年1月1日.我之前有过vm:true,现在被迫将env更改为flex.现在我用nginx得到了502错误的网关错误.App引擎不允许我们更改nginx配置文件.
我曾尝试过这篇文章的建议:使用NodeJS的Google App Engine 502(Bad Gateway)但仍然无效.
由于某种原因,我有另一个应用程序与app引擎完全相同的设置,它的工作完美.
任何建议将不胜感激.谢谢.
Dee*_*til 18
应该始终收听端口8080,谷歌转发所有请求从80到8080 https://cloud.google.com/appengine/docs/flexible/custom-runtimes/build#listen_to_port_8080
SRA*_*VAN 14
检查日志中是否存在任何部署错误
$ gcloud app logs read
Run Code Online (Sandbox Code Playgroud)
我在本教程提供的代码中遇到了类似的问题(https://cloud.google.com/nodejs/getting-started/authenticate-users)
并发现缺少依赖性.我修复了缺少的依赖项,部署了应用程序并且运行正常.
问题详情:https://github.com/GoogleCloudPlatform/nodejs-getting-started/issues/106
将主机设置为0.0.0.0
端口8080由引擎默认设置。事实上,您无法定义环境变量,PORT因为它是保留的。
运行下一个命令(如@sravan所述)
gcloud app logs read tail
Run Code Online (Sandbox Code Playgroud)
并确保它看起来像这样,
[Sun May 27 2018 10:32:44 GMT+0000 (UTC)] serving app on 0.0.0.0:8080
Run Code Online (Sandbox Code Playgroud)
干杯
我在 Express 上遇到了同样的问题。为我解决的是不为应用程序提供 IP 地址。
所以我的旧代码是:
var ip = "127.0.0.1";
var port = "8080";
var server = http.createServer(app);
server.listen(port, ip);
Run Code Online (Sandbox Code Playgroud)
这将导致应用引擎中的 502。
删除 ip 是我的解决方案。
server.listen(port);
Run Code Online (Sandbox Code Playgroud)
502 不一定是 nginx 本身的错误,它最常发生在 nginx 代理无法与您的应用程序容器通信时(通常是因为您的应用程序无法启动)。如果您在迁移到“env: flex”后收到 502,这很可能是由于您的应用程序需要进行一些代码更改,如升级到最新的 App Engine 灵活环境版本中所述。
检查应用程序日志中来自 NPM 的错误也将有助于诊断启动失败的确切原因。
| 归档时间: |
|
| 查看次数: |
14899 次 |
| 最近记录: |