logging.level.org.springframework.cloud.gateway=DEBUG
curl -i http://127.0.0.1:9000/api/user/info

网关启动日志里路由加载成功,访问 /api/user/info 却还是直接返回 404,响应体是那段 Whitelabel JSON,下游服务的访问日志里一条请求都查不到。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,Path 断言按 /api/** 匹配,StripPrefix 又把前缀剥掉一层,转发出去的路径少了一段,下游没有对应的映射,两个配置的方向必须先对齐再改,否则怎么调都是 404。

「Gateway 路由 404」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。改完隔一天再看一次,当场正常不代表能稳住。

测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

处理上按这个顺序:先看网关 debug 日志里真正转发出去的 URL 到底是什么样;确认 Path 断言写的是完整前缀,不是被剥掉之后的那一段;前缀要保留就删掉 StripPrefix,或者把它的值改成 1 再重启试试看。

改完只确认一件事:网关日志里转发的路径与下游 Controller 的映射一致,接口返回 200 不再是 404,请求能正常走通。

作者 9823189