我有一个非常简单的用例,但我似乎找不到方法来做到这一点。我的应用程序有一个应用程序部分(角度)和一个 API 部分(nodejs)。从 UI 来看,虽然我将 api 称为/api/*,但 api 服务器本身没有/api前缀。因此,我需要重写对/apito的任何请求/。
在开发环境中,我的角度应用程序只有一个代理配置来进行重写:
{
"/api/*": {
"target": "http://localhost:3000",
"pathRewrite": {
"^/api/": ""
},
"secure": false,
"logLevel": "debug"
}
}
Run Code Online (Sandbox Code Playgroud)
因此,对于生产环境,我需要针对以下场景配置GCP负载均衡器:
| 传入路径 | 后端服务 | 路径重写 |
|---|---|---|
| / | ui 后端服务 | (不适用) |
| /应用程序 | ui后端服务 | (不适用) |
| /api | api 后端服务 | / |
虽然我能够配置简单的路由规则来将主机和路径映射到 ui-backend-service,但重写/api.
我能找到的任何 URL 重写示例都显示了经典负载平衡,它似乎不再适用。
我尝试修改Advanced host and path rules,但它告诉我我可以提供pathRules或routeRules,而不是两者都提供。我无法创建单独的规则,因为主机(*在我的例子中)不能多次使用。
我不想为此在我的 api 服务器上设置 nginx。还有其他方法吗?
load-balancing node.js google-cloud-platform gcp-load-balancer angular14