我尝试使用Spring-Cloud-Gateway
在我们的项目上实现API-Gateway
服务。
假设我有一个名为admin
的服务,我正尝试按如下方式配置它的路由:
spring:
application:
name: gateway
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
routes:
- id: admin_route
uri: lb://admin
predicates:
- Path=/**
它编译成功,但只是有一个问题!!
我在admin
服务上有一个API,URL如下所示,没有网关也能正常工作:
http://localhost:<ADMIN_PORT>/admin/system/employee/check
但是当我想通过gateway
服务调用这个API时,我必须复制URL中的admin
,如下所示,这样它才能正常工作:
http://localhost:<GATEWAY_PORT>/admin/admin/system/employee/check
有人知道或知道如何解决这个问题吗?
任何帮助都将不胜感激!!
注意:Spring-Boot 2.7.0、Soring云计算2021.0.3、Java 1.8
更新************
我在admin的application.yml
中设置了servlet-context-path
,如下所示:
server:
port: <ADMIN_PORT>
servlet:
context-path: /admin
我想这就是为什么我需要在URL中复制服务名称的原因,但是我在SpringCloudGateway
上找不到任何与此主题相关的配置!!
还是很感谢你的帮助!!!:))
2条答案
按热度按时间uqcuzwp81#
您似乎正在admin uri上托管网关
hjzp0vay2#
检查路由URI配置。
你有这个:
把它改成这样: