首页 > 解决方案 > 502 Bad Gateway 和“请在 30 秒后重试”消息

问题描述

首先,我知道 gcloud 上的 http 502 意味着任何可能的错误。此外,在日志中只有标准的 Spring Boot 信息和调试消息没有错误。

我有麻烦的项目是一个swagger生成的spring boot java项目(超过160个java文件)。

在 intellij 上本地运行良好且快速。

在 gclod shell 上执行mvn clean spring-boot:run后,项目启动,我在浏览器上看到了默认生成的页面。

在 gclod shell 上执行后mvn appengine:deploy,我总是在浏览器上看到此消息: 错误:服务器错误服务器遇到临时错误,无法完成您的请求。请在 30 秒后重试 或此错误:502 Bad Gateway nginx。总是。

这是来自 gcloud 控制台的最后一条消息(在 mvn appengine:deploy 之后):

..done.
[INFO] GCLOUD: Setting traffic split for service [default]...
[INFO] GCLOUD: ...................................done.
[INFO] GCLOUD: Deployed service [default] to [https://polishapi-psd2.appspot.com]
[INFO] GCLOUD:
[INFO] GCLOUD: You can stream logs from the command line by running:
[INFO] GCLOUD:   $ gcloud app logs tail -s default
[INFO] GCLOUD:
[INFO] GCLOUD: To view your application in the web browser run:
[INFO] GCLOUD:   $ gcloud app browse
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  16:07 min
[INFO] Finished at: 2019-12-18T14:11:30+01:00
[INFO] ------------------------------------------------------------------------
C:\workspace\PolishAPI-psd2>gcloud app logs tail

在日志中没有错误。一个基本的、超级简单的spring boot“hello world”项目可以工作,但不是那种招摇撞大的项目。

如何处理这个问题?谢谢你。

标签: javaspring-bootgoogle-app-enginegoogle-cloud-platformgcloud

解决方案


在处理这个问题超过 4 周后,我发现 app.yaml 文件应该只包含这两行:

runtime: java11
instance_class: F4

是的!只有这两行足以在 gcloud 上运行那个大摇大摆的生成项目。在 stackoverflow、github 等上有很多不同的示例,包括google为同一任务制作的不同示例app.yaml文件,答案非常简单。

此致!:)


推荐阅读