2018网站开发的革新,网站开发项目策划书,可以网上做单的网站,网站301和302文章来源 spring cloud gateway 通过谓词#xff08;Predicate#xff09;来匹配来自用户的请求 为了方便#xff0c;使用postman测试不同的谓词的效果 路径谓词#xff08;Predicate#xff09;—— 最简单的谓词 配置如下spring:cloud:gateway:routes:# 匹配指定路径的路…文章来源 spring cloud gateway 通过谓词Predicate来匹配来自用户的请求 为了方便使用postman测试不同的谓词的效果 路径谓词Predicate—— 最简单的谓词 配置如下 spring:cloud:gateway:routes:# 匹配指定路径的路由- id: path_routeuri: http://www.baidu.compredicates:- Path/baidu/**filters:- StripPrefix1 Path谓词配置的- Path/baidu/**的作用是匹配所有请求路径以http://localhost:8888/baidu开头的用户请求用postman请求http://localhost:8888/baidu返回百度网页的HTML效果如图 cookie谓词 配置如下 spring:cloud:gateway:routes:# 匹配指定cookie的路由- id: cookie_routeuri: http://www.taobao.compredicates:- Cookiechocolate, value Cookie谓词配置的- Cookiechocolate, value的作用是匹配请求中存在cookiechocolatevalue的所有请求 注意- Cookiechocolate, value中的value是正则表达式用postman随便请求一个urlhttp://localhost:8888/1111111只要存在cookiechocolatevalue都网关都会匹配到对应路由最后返回淘宝的HTML效果如图 请求头谓词 配置如下 spring:cloud:gateway:routes:# 匹配指定请求头的路由- id: header_routeuri: http://www.jd.com/predicates:- HeaderX-Request-Id, \d Header谓词配置的- HeaderX-Request-Id, \d的作用是匹配请求头中存在符合条件“key为X-Request-Idvalue为数字”的所有请求 注意HeaderX-Request-Id, \d第二个参数是正则表达式如\d用postman随便请求一个urlhttp://localhost:8888/2222222只要请求头中符合key为X-Request-Idvalue为数字都网关都会匹配到对应路由最后返回京东的HTML效果如图 请求参数谓词 配置如下 spring:cloud:gateway:routes:# 匹配指定请求参数的路由- id: cookie_routeuri: http://tmall.com/predicates:- Queryparam1,value 上面请求参数谓词- Queryparam1,value的含义是 匹配所有含有请求参数param1且它的值符合正则表达式value的请求 注意- Queryparam1,value中的value是正则表达式注意- Queryparam1,value中的value可以省略 即可变成- Queryparam1这是匹配所有请求参数含有param1的请求并且不筛选值 效果如下 其他谓词 host谓词匹配对应的host如下匹配www.somehost.org 或 beta.somehost.org等 spring:cloud:gateway:routes:- id: host_routeuri: http://example.orgpredicates:- Host**.somehost.org Method方法谓词匹配如getpost等请求的方法 spring:cloud:gateway:routes:- id: method_routeuri: http://example.orgpredicates:- MethodGET RemoteAddr为ip地址谓词匹配对应ip地址 spring:cloud:gateway:routes:- id: remoteaddr_routeuri: http://example.orgpredicates:- RemoteAddr192.168.1.1/24 After、Before、Between等时间谓词分别匹配在某时之后之前和某段时间内的请求谓词组合 不同谓词之间可以组合使用。它们同时存在于同一个路由时请求必须同时满足所有的谓词条件才被这个路由匹配。注意一个请求满足多个路由的谓词条件时请求只会被首个成功匹配的路由转发配置如下 spring:cloud:gateway:routes:# 匹配指定请求参数和请求头的路由- id: compose_routeuri: http://www.oschina.net/predicates:- Queryparam2- HeaderHeader-Route,value 效果如下 转载于:https://www.cnblogs.com/luchangjiang/p/11090210.html