【发布时间】:2019-09-14 20:05:11
【问题描述】:
我正在将一个使用 Go 1.11 运行时的简单应用程序从 AppEngine flex 环境迁移到标准环境,因为 flex 对我的低流量站点来说非常昂贵(而且标准直到最近才可用于此运行时)。每次 GAE 为我的应用程序访问 /_ah/start 端点时,它都会记录 301 和以下错误:Process terminated because it failed to respond to the start request with an HTTP status code of 200-299 or 404.
我的服务器确实有一个/_ah/start 的处理程序,它只写一个 200 并在本地正常工作。我还尝试为app.yaml 中的所有路由添加一个处理程序,以确保对 AppEngine 负载平衡器的请求实际上被路由到我的服务器,但它仍然无法正常工作。我从服务日志中知道我的服务器正在启动并侦听正确的端口,但它会一遍又一遍地重新启动,并且由于 GAE 启动请求的这个问题而实际上无法处理任何请求。
这是我的app.yaml:
runtime: go111
instance_class: B1
basic_scaling:
max_instances: 1
handlers:
- url: /.*
script: auto
【问题讨论】:
-
显示为应用程序记录的消息以及运行 net/http 服务器的代码。
-
编辑了我的原始帖子以包含日志的屏幕截图!
-
应用程序以重定向响应 /_ah/start(状态 301)。您是如何确定应用程序以本地运行的 200 响应的?应用程序是否重定向任何请求?
-
当我在本地运行我的服务器时,我可以点击
/_ah/start并返回 200。我不确定如何在本地模拟实际 AppEngine 环境的设置,这样基本上只是验证我的server 在更一般的意义上按预期工作,而不是在 AppEngine 的上下文中工作。当我部署到 GAE 时,我不知道重定向来自哪里,但有趣的是,第一个错误日志发生在我的服务器记录任何内容之前,这意味着它试图在运行 main.go 之前到达那个端点。 -
我的服务器只将http流量重定向到https,这是我在使用flex环境时添加的。我想知道这是不是罪魁祸首?我会尝试删除该中间件,看看会发生什么。
标签: google-app-engine go