我已将 6 个不同的基于 Flask 的应用程序部署到 Google Cloud Run。当我通过自动生成的 URL 访问它们时,它们工作得很好。现在,我想用不同的路由将所有 6 个服务统一在一个域名下。例如,
mydomain.com/user -> https://custom-user-asdtgthyju-de.a.run.app
mydomain.com/product -> https://custom-product-asdtgthyju-de.a.run.app
我尝试过的事情
1. Nginx 部署在单独的 VM 中,并带有到云运行 URL 的反向代理
不工作,相同的配置 - 部署在常规 VM 中的相同代码可以工作,但对于云运行部署显示未找到路由“/用户”
2. 使用 ESPv2 的云端点
https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-run
让它按照我的要求工作,但无法传递自定义 header ,就像我使用 X-API-KEY 进行身份验证一样,它甚至无法进入 Cloud Run。它正在被 ESPv2 本身剥离。
请帮助,我如何在云运行服务前配置反向代理/API 网关。有没有人试过外部 Nginx 到 Cloud Run 映射?
谢谢
最佳答案
使用 URL 路由获取单个域的最简单方法是使用 Firebase Hosting and its's redirection to Cloud Run .您可以将您的域添加到 Firebase 托管并根据其来源 (URL) 重定向到特定的 Cloud Run 服务。
关于nginx - Cloud Run 中的 API 和虚拟机中的 Nginx 反向代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62382302/