我正在嘗試從 Go 1.9 遷移到 Go 1.11。我從遷移文檔中復(fù)制了main函數(shù)這是我的 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))}我的應(yīng)用程序需要使用 HTTPS 在端口 443 上運行。但是,部署后,應(yīng)用程序沒有響應(yīng)。我檢查了日志,它顯示“正在偵聽端口 8081”。我不明白為什么需要8081而不是443。這個8081是哪里來的?如果我對 main 函數(shù)進(jìn)行硬編碼以使用端口 443。它會在日志中顯示“應(yīng)用程序正在偵聽端口 443,它應(yīng)該偵聽 PORT 環(huán)境變量定義的端口。因此,nginx 無法啟動。性能可能會降級。請監(jiān)聽 PORT 環(huán)境變量定義的端口。”我在這里想念什么?
1 回答

慕田峪9158850
TA貢獻(xiàn)1794條經(jīng)驗 獲得超7個贊
環(huán)境PORT
變量將由 AppEngine 平臺設(shè)置,您不必在app.yaml
配置文件中設(shè)置它。事實上,你甚至無法覆蓋它。
查看運行時設(shè)置的環(huán)境變量列表。
PORT
因此,只需像在 Go 代碼中一樣使用環(huán)境變量,但將其從app.yaml
配置中刪除。您只需啟動一個非 HTTPS Web 服務(wù)器,平臺就會為您提供 HTTPS 支持。
- 1 回答
- 0 關(guān)注
- 90 瀏覽
添加回答
舉報
0/150
提交
取消