我正在尝试从 Go 1.9 迁移到 Go 1.11。我从迁移文档中复制了main函数这是我的 app.yamlruntime: go111env: standardinstance_class: F1handlers: - url: /.* script: auto secure: always redirect_http_response_code: '301' - url: .* script: autoenv_variables: PORT: '443'这是我的主要功能func main() { http.HandleFunc("/demo", demoHandler) port := os.Getenv("PORT") if port == "" { port = "443" syslog.Printf("Defaulting to port %s", port) } syslog.Printf("Listening on port %s", port) syslog.Fatal(http.ListenAndServe(fmt.Sprintf(":%s", port), nil))}我的应用程序需要使用 HTTPS 在端口 443 上运行。但是,部署后,应用程序没有响应。我检查了日志,它显示“正在侦听端口 8081”。我不明白为什么需要8081而不是443。这个8081是哪里来的?如果我对 main 函数进行硬编码以使用端口 443。它会在日志中显示“应用程序正在侦听端口 443,它应该侦听 PORT 环境变量定义的端口。因此,nginx 无法启动。性能可能会降级。请监听 PORT 环境变量定义的端口。”我在这里想念什么?
1 回答

慕田峪9158850
TA贡献1794条经验 获得超8个赞
环境PORT
变量将由 AppEngine 平台设置,您不必在app.yaml
配置文件中设置它。事实上,你甚至无法覆盖它。
查看运行时设置的环境变量列表。
PORT
因此,只需像在 Go 代码中一样使用环境变量,但将其从app.yaml
配置中删除。您只需启动一个非 HTTPS Web 服务器,平台就会为您提供 HTTPS 支持。
- 1 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消