【问题标题】:502 Bad Gateway and "Please try again in 30 seconds" messages502 Bad Gateway 和“请在 30 秒后重试”消息
【发布时间】:2020-04-11 02:50:20
【问题描述】:

首先我知道 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”项目可以工作,但不是那种大摇大摆的项目。

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

【问题讨论】:

  • 您好,我来自 GCP 支持。我看到你现在有一个工作的 Swagger 应用程序;那么问题解决了吗?
  • 是的,是的! :) 在不更改源代码的情况下,我发现 app.yaml 文件中的这两行就足够了: runtime: `runtime: java11 instance_class: F4 `
  • 很高兴您解决了您的问题! :D
  • 我还是不明白为什么只有 java11 运行时和标准环境可以工作,而 java 和 flex 环境不行。在谷歌文档中没有解释。所以,问题没有解决,我只用了一个workaround。
  • 3/3-此外,这些链接(Choosing Env、Key differences、Migrating)指出了灵活环境和标准环境之间的区别,所以我发现它们也可能会有所帮助。

标签: java spring-boot google-app-engine google-cloud-platform gcloud


【解决方案1】:

通过与上述答案的类比,以下帮助:

runtime: java
env: flex    
instance_class: B4
manual_scaling:
  instances: 1
resources:
  memory_gb: 4

如果需要也可以使用automatic_scaling和instance_classF4。

【讨论】:

    【解决方案2】:

    完全相同的问题,我有这个示例https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/appengine-java8/helloworld-springboot

    遵循它起作用的两条线。 运行时:java11 instance_class: F4

    【讨论】:

      【解决方案3】:

      处理这个问题4个多星期后,我发现app.yaml文件应该只包含这两行:

      runtime: java11
      instance_class: F4
      

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

      最好的问候! :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-06
        • 2015-07-25
        • 1970-01-01
        • 2020-09-01
        • 2013-08-04
        • 2014-03-05
        • 2020-04-05
        • 2020-07-12
        相关资源
        最近更新 更多