1.未添加统一前缀之前的请求url:
http://localhost:16000/consumer/consumers/1
注意:
1. 16000:网关zuul的端口号
2. consumer:微服务的名称
3. consumers/1:接口请求的映射路径以及参数
2. 添加统一前缀配置:
在application.properties文件中添加如下配置:
zuul.prefix=/zuul
*注意*:第二个zuul是添加的统一前缀,可以自定义,这里我们使用zuul。
3.访问接口consumers:
添加统一前缀后的url:
http://localhost:16000/zuul/consumer/consumers/1
但此时浏览器会返回404
4.分析及解决:
分析:
1. 分析后得知/zuul的默认context-path是/zuul。
2. 之所以在默认的情况下我们不加zuul也可以请求成功是因为它帮我们做了url的裁剪。
(通俗的讲就是不加zuul.prefix=/zuul配置的话,以下两个url都可以请求成功
* http://localhost:16000/consumer/consumers/1
* http://localhost:16000/zuul/consumer/consumers/1)
解决:
1. 将默认context-path设置为空:zuul.servlet-path=/
2. 配置网关zuul的统一前缀:zuul.prefix=/zuul
(如果没有生效的话重启zuul服务)
5.验证
结果如图所示,现在所有的请求必须加上zuul,否则请求失败。