gpt4 book ai didi

google-app-engine - 谷歌云平台,Golang 灵活环境 HTTPS 仅适用于自定义域

转载 作者:IT王子 更新时间:2023-10-29 02:03:15 24 4
gpt4 key购买 nike

我已经通过在 GCP 上运行 gcloud app deploy 命令轻松部署了我的应用程序。以柔性环境为默认值。昨天,我进行了必要的自定义,以便使用 ssl 为该应用程序创建一个自定义域。目前,当我转到以下任何一个时它都有效,http://example.comhttps://example.com 但我也想强制人们使用https。目前 http 请求按原样工作,我希望将它们定向到 https。我想将所有用户引导至 https://example.com,当他们尝试使用 http 或根本不使用任何东西(如 example.com)访问该网站时。如何实现?

这是我的 app.yaml:

api_version: go1
env: flex
runtime: go

我已经尝试使用 handlers 和 secure 属性,但它们似乎对灵活的环境无效。

谢谢。

最佳答案

目前,柔性环境不支持使用app.yaml 仅HTTPS 定向。然而,这可以在服务器代码中通过使用这样的函数来实现,

func directToHttps(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
if r.URL.Scheme == "https" || strings.HasPrefix(r.Proto, "HTTPS") || r.Header.Get("X-Forwarded-Proto") == "https" {
next(w, r)
} else {
target := "https://" + r.Host + r.URL.Path

http.Redirect(w, r, target,
http.StatusTemporaryRedirect)
}
}

我用 negroni 将这个函数包装到我的处理程序中。

可在此处找到工作示例:https://github.com/malisit/munhasir

关于google-app-engine - 谷歌云平台,Golang 灵活环境 HTTPS 仅适用于自定义域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43748981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com