通过反向代理运行的云会抛出 404

通过反向代理运行的云会抛出 404

我有一个 google cloud run 应用程序需要连接到我的客户域,为此,我在 VM 实例上使用 Traefik 反向代理来处理连接和 SSL 终止。

我的问题是使用反向代理时,cloud run 会抛出一个带有 404 错误的 google 页面。使用 cloud run URL 一切正常。

这是迄今为止我的 Traefik 动态配置:

[http]
  [http.routers]
    [http.routers.router0]
      rule = "PathPrefix(`/`)"
      service = "webei"
      entrypoints = ["http"]
    [http.routers.router1]
      rule = "PathPrefix(`/`)"
      service = "webei"
      entrypoints = ["https"]
      [http.routers.router1.tls]
        certResolver = "subdomainCertResolver"

  [http.services]
    # Define how to reach an existing service on our infrastructure
    [http.services.webei.loadBalancer]
      [[http.services.webei.loadBalancer.servers]]
        url = "https://my-cloud-run-url"

答案1

尝试了不同的解决方案后,我让它与 Nginx 一起工作,并发现问题出在主机头中。

默认情况下,Traefik 使用原始请求中的 Host,但是,如果此 Host 与 Google Cloud Run 不匹配,则找不到该应用程序。

为了解决这个问题,我只需在 Traefik 动态配置中将passHostHeader值设置为。false

[http.services.myservice.loadBalancer]
  passHostHeader = false
  [[http.services.webei.myservice.servers]]

相关内容