https://domain.name/app1
,它将路由到相应的 Cloud Run 实例。该实例可能会从 /static
请求某些内容,但 /static
需要重新路由为 https://domain.name/app1/static
而不是 https://domain.name/static
据我所知,可能有两种明显的方法可以做到这一点?
/static
将 app1/static
等请求代理回 http_referrer
。工具和应用程序经常添加、删除和更改。我希望应用程序代码尽可能不知道 URL 结构。我更喜欢 (2),特别是因为在 (1) 中,NGINX 实例成为单点故障。
或者,也许最好的方法实际上是 (2),并且在每个应用程序中都有
{base}/static
。但我真的很想例如移动应用程序。从 in_dev/app1
到 tools/app1
w.o.必须更改应用程序代码中的 base_URL。
要实现此目的,您需要利用负载均衡器的 URL 重写。这将允许您在将流量引导到后端服务之前更改主机、路径或两者。
假设一切都已设置完毕,您只需编辑负载均衡器的路由规则即可。
编辑负载均衡器并选择路由规则。
在模式部分,选择“高级主机和路径规则”。
在 YAML 文件中,为您的 URL 请求创建一个带有“matchRules”的“rouetRules”,以区分您的后端服务。
通过使用“pathPrefixRewrite”创建“urlRewrite”来指示您想要的路径。
下面的示例 YAML 代码:
name: matcher
routeRules:
- description: service
matchRules:
- prefixMatch: /foo # Request path that need to be rewrite.
priority: 1
service: projects/example-project/global/backendServices/<your-backend>
routeAction:
urlRewrite:
pathPrefixRewrite: /foo/bar # This will be your desired path.
如需更全面的指南,您可以关注这篇文章。