Express网关无法获取

时间:2018-09-21 15:28:05

标签: node.js express api-gateway

我正在尝试在快速网关中设置多个(nodejs)服务,但是由于某种原因,第二个服务没有被使用。请在下面找到我的gateway.config.yml

http:
  port: 8080
admin:
  port: 9876
  hostname: localhost
apiEndpoints:
  config:
    host: localhost
  actions:
    host: localhost
serviceEndpoints:
  configService:
    url: "http://localhost:3002"
  actionService:
    url: "http://localhost:3006"
policies:
- basic-auth
- cors
- expression
- key-auth
- log
- oauth2
- proxy
- rate-limit
pipelines:
  - name: basic
    apiEndpoints:
    - config
    policies:
    - proxy:
      - action:
          serviceEndpoint: configService
          changeOrigin: true
  - name: basic2
    apiEndpoints:
    - actions
    policies:
    - proxy:
      - action:
          serviceEndpoint: actionService
          changeOrigin: true

1 个答案:

答案 0 :(得分:0)

这是预料之中的,因为apiEndpoints配置部分使用相同的主机和路径来构建路由

apiEndpoints:
  config:
    host: localhost
  actions:
    host: localhost

您所能做的就是以某种方式将其按路径分开

apiEndpoints:
  config:
    path: /configs
  actions:
    path: /actions

以这种方式localhost/configs/db将进入配置服务..:3002/configs/db 并且localhost/actions/magic将执行操作..:3006/actions/magic

您可能还需要安装Rewrite插件 https://www.express-gateway.io/docs/policies/rewrite/

以防目标服务具有不同的URL模式