Google cloud platform 如何在Google云运行中将所有http流量重定向到https
我有一个简单的容器化web应用程序(提供HTML和Javascript的Nginx),我将其部署到Google Cloud Run 问题是,尽管我已经验证并更新了DNS记录,但我似乎无法强制HTTPS连接。如果用户愿意,他们仍然可以访问我的云运行应用程序的不安全http端点Google cloud platform 如何在Google云运行中将所有http流量重定向到https,google-cloud-platform,google-cloud-run,Google Cloud Platform,Google Cloud Run,我有一个简单的容器化web应用程序(提供HTML和Javascript的Nginx),我将其部署到Google Cloud Run 问题是,尽管我已经验证并更新了DNS记录,但我似乎无法强制HTTPS连接。如果用户愿意,他们仍然可以访问我的云运行应用程序的不安全http端点 如何设置Google云运行服务,强制或重定向用户使用HTTPS?LB发送一个名为X-Forwarded-Proto的头文件,其中包含http或HTTPS,因此,如果您检测到,您可以轻松重定向永久移动的301 使用Nginx编
如何设置Google云运行服务,强制或重定向用户使用HTTPS?LB发送一个名为
X-Forwarded-Proto
的头文件,其中包含http
或HTTPS
,因此,如果您检测到,您可以轻松重定向永久移动的301
使用Nginx编辑的问题示例:
Go代码示例:
func main() {
http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
if request.Header["X-Forwarded-Proto"][0] == "http" {
http.Redirect(writer, request, "https://" + request.Host + request.RequestURI, http.StatusMovedPermanently)
return
}
fmt.Printf("Request: %+v, headers: %+v \n", request, request.Header)
writer.Write([]byte("hello world"))
})
http.ListenAndServe(":"+os.Getenv("PORT"), nil)
}
我不清楚你在这里看到了什么。您只能在一个端口上执行HTTP或HTTPS,不能同时执行两者。@DougStevenson Cloud Run可能允许用户通过将所有HTTP请求重定向到HTTPS来强制执行HTTPS。Beshoy,我对问题进行了一些编辑,去掉了不相关的部分,如果它失去了意义,请告诉我。对LB没有任何控制,因为云运行本质上是一个无约束的Paas。你不需要控制任何东西。这些标题是由LB发送给您的,所以只要在检测到我的错误时返回301重定向即可。我应该在我的问题中指定容器中运行的唯一代码是transpiled javascript。这个答案是我可以努力实现的。在这种情况下,容器必须运行一些HTTP服务器来提供文件。您可以使用Nginx或其他服务器来检测此类配置和重定向,第27行和第34-36行似乎已经找到了答案