Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何在Google云运行中将所有http流量重定向到https_Google Cloud Platform_Google Cloud Run - Fatal编程技术网

Google cloud platform 如何在Google云运行中将所有http流量重定向到https

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编

我有一个简单的容器化web应用程序(提供HTML和Javascript的Nginx),我将其部署到Google Cloud Run

问题是,尽管我已经验证并更新了DNS记录,但我似乎无法强制HTTPS连接。如果用户愿意,他们仍然可以访问我的云运行应用程序的不安全http端点


如何设置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行似乎已经找到了答案