网关出现的背景
微服务中,服务的粒度被细分,以往的一整大块服务可以被拆分成类似订单服务,支付服务等。拆分后的服务一般都是通过网络来进行通讯的,如果让客户端一个个来调用服务,未免过于复杂。这个时候大家可能会想到nginx来进行反向代理,不过nginx的配置稍有麻烦。于是乎Gateway就出现了,Gateway比nginx更加契合Spring Cloud系统。

网关的作用
网关是处于应用程序或服务之前的系统,用来管理授权、访问控制和流量限制等。通俗来讲就是对其他服务请求的集中管理,请求先到网关,再由网关请求到真实的服务。

Gateway中主要的几个配置

  1. Route路由:网关的基本,由ID、URI、断言(Predicate)、过滤器(filter)组成。断言相当于条件判断,判断为真,则由路由匹配。
  2. 断言(Predicate):可以使用这个匹配来自HTTP请求的任何内容
  3. 过滤器(filter):对请求和响应进行修改处理

断言可以匹配的项

  1. ZonedDateTime:根据时间来进行匹配
  2. Cookie:根据cookie来进行匹配
  3. Header:根据请求头来进行匹配
  4. Host:根据请求域名来进行匹配
  5. Method:根据请求方法来进行匹配
  6. Path:根据请求路径来进行匹配
  7. Query:根据请求参数来进行匹配
  8. RemoteAddr:根据远程IP进行谓词的校验匹配

举例

spring:cloud:gateway:routes:- id: test_routeuri: http://ip:port //真正跳转的路径predicates:- Host=**.com- Path=/headers- Method=POST- Header=X-Request-Id, \d+- Query=name- Cookie=chocolate, ch.p- After=2020-01-25T06:06:06+08:00```注:1.  如果一个路由中存在多个断言,那么请求必须满足所有断言,才能匹配。
2.  一个请求如果满足多个路由的断言,只会被第一个路由所匹配。### **过滤器(filter)**过滤器也有许多设置,这里只提及其中两项:StripPrefix:去掉部分url路径```bash
spring:cloud:gateway:routes:# 集成eureka注册中心的配置示例- id: hello_ribbon_routeuri: lb://spring-cloud-producerpredicates:- Path=/producerInEureka/**filters:- StripPrefix=1```假设我们的请求是 http://localhost:8080/producerInEureka/hello ,经过过滤器(StripPrefix=1)后发送到spring-cloud-producer的请求就为[http://spring-cloud-producer/hello](http://spring-cloud-producer/hello)

集成eureka注册中心的配置示例

  • id: hello_ribbon_route
  • uri: lb://spring-cloud-producerpredicates:
  • Path=/producerInEureka/**filters:
  • PrefixPath=/test

我们的请求是 http://localhost:8080/producerInEureka/hello ,经过过滤器(StripPrefix=1)后发送到spring-cloud-producer的请求就为http://spring-cloud-producer/test/producerInEureka/hello

gateway配置示例

spring:cloud:gateway:globalcors:cors-configurations: #网关跨域的配置'[/**]':allowedOrigins: "*"allowedHeaders: "*"allowCredentials: trueallowedMethods:- GET- POST- PUT- OPTIONS  routes:# 集成eureka注册中心的配置示例- id: hello_ribbon_routeuri: lb://spring-cloud-producerpredicates:- Path=/producerInEureka/**filters:- PrefixPath=/test

Gateway篇(一)之Gateway配置相关推荐

  1. ElasticSearch入门 第二篇:集群配置

    这是ElasticSearch 2.4 版本系列的第二篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  2. Puppet基础篇9-Puppetmaster多环境配置

    Puppet基础篇9-Puppetmaster多环境配置 零基础学习Puppet自动化配置管理系列文档 扩充现有架构环境是对一个企业成长的见证 将基础环境模块部署到puppetmaster端之后就可以 ...

  3. IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm(转载)

    IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm 自从本系列发布之后,收到了很多的朋友的回复!非常感谢,同时很多朋友问到了一些问题,有些问 ...

  4. 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit

    树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇二:初步配置 Home Assistant 并连接小米设备与 HomeKit 通过本篇教程,你将完成对 H ...

  5. NHibernate3剖析:Configuration篇之SessionFactory lambda配置

    概览 在NHibernate3.0中,SessionFactory的Properties和Cache配置实现了流配置(fluent-configuration)和lambda表达式配置(lambda- ...

  6. 树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant

    树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant 通过本篇教程,你将完成对 Home Assistant 的进一 ...

  7. Microsoft Teams 语音篇(二)--配置语音会议

    很早前有一篇文章讲到了如何给用户分配呼叫计划, 本篇来看一下如何配置语音会议–audio conference. 有人问过一个很好的问题,如果这些东西想自己去测试一下应该怎么做,用什么许可证比较好,这 ...

  8. 文件服务器安装配置说明手册,FreeBSD全能服务器安装手册之文件服务器篇之A安装配置篇...

    FreeBSD全能服务器安装手册FTP篇之A安装配置篇 cd /usr/ports/ftp/pure-ftpd make WITH_WELCOMESG=yes WITH_UPLOADSCRIPT=ye ...

  9. spring cloud gateway跨域全局CORS配置

    在Spring 5 Webflux中,配置CORS,可以通过自定义WebFilter实现: 注:此种写法需真实跨域访问,监控header中才会带相应属性. 代码实现方式 import org.spri ...

最新文章

  1. csvtk:高效命令行版极简dplyr
  2. 神策数据张涛:企业服务客户全生命周期运营三步曲:执行反馈
  3. SAP编程中最基本的概念
  4. HP 380 G5安装CentOS7时找不到P400 raid卡
  5. hello March
  6. centos 7.3 设置静态IP
  7. 设置自动清理mysql binlog日志和手动删除的方法
  8. 什么是Reactive Streams in Java 译
  9. Android 通过联系人姓名查询联系人号码
  10. 【2019华东交通校赛:H】谁在说谎(思维)
  11. 如何构建自己的游戏框架并且制作游戏(一)(附源码)
  12. 局域网文件服务器单独文件夹加密,局域网 如何给共享文件夹加密
  13. 考研 |高等数学 Chapter 1
  14. 华为OD机试 - We Are A Team
  15. Maya模型Fbx材质有贴图却不显示
  16. Android要ios王者,王者荣耀怎么转区 安卓转苹果需要什么要求
  17. Android性能优化之启动优化实战篇,系列篇
  18. 使用BeanEditForm来创建用户表单
  19. c语言的%10是什么意思,c语言中1/10%10是什么意思结果是什么
  20. 使用bat批处理文件启动.exe程序

热门文章

  1. supervisor安装
  2. Tkinter Cursors
  3. ContentPlaceHolder
  4. h3c服务器开机无法自行进入系统,H3C服务器设置自启动
  5. 【ceph相关】ceph基准性能测试工具
  6. 《傲慢与偏见》读书笔记摘抄
  7. CaptchaBuilder验证码不显示
  8. 苹果可能在全球开发者大会上发布其AR设备
  9. 计算机组成原理【转载】
  10. 使用bmeps将JPG PNG格式图片转EPS格式