我正在尝试在快速网关中设置多个(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
答案 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模式