1

我的配置如下

apiEndpoints:
  api:
    host: '*'
    paths: '/ip'
  approval-engine:
    host: '*'
    paths: '/app/*'
serviceEndpoints:
  httpbin:
    url: 'https://httpbin.org'
  approval-engine:
    url: 'http://localhost:8001/'

以代理为

  - proxy:
      - action:
          serviceEndpoint: approval-engine
          ignorePath: false
          prependPath: false
          autoRewrite : true
          changeOrigin: true

当我向http://localhost:8080/app/category发出请求时,请求被路由到 localhost:8001/app/category

我的问题是我们可以将请求路由到http://localhost:8001/category。我想忽略代理中的路径:/app/ 部分。

4

1 回答 1

2

为此,您需要使用express-gateway rewrite 插件

您可以使用egCLI 安装插件。

eg plugin install express-gateway-plugin-rewrite

确保rewrite包含在网关配置的policies白名单中。

在处理请求的管道中,您可以像这样使用重写插件:

policies:
  - rewrite:
    - condition:
        name: regexpmatch
        match: ^/app/(.*)$
      action:
        rewrite: /$1

这应该/app在请求被路由到服务端点之前从路径中删除。

于 2018-08-03T20:36:22.690 回答