我正在嘗試從 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 關注
- 92 瀏覽
添加回答
舉報
0/150
提交
取消