微服务的网关是十分重要的,它能负责路由,验证身份,过滤请求,解决跨域问题等等。
首先新建一个网关服务并引入依赖
<!--网关gateway--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <!--nacos的服务注册与发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
这里需要gateway和nacos的服务注册与发现,因为要把网关也作为一个微服务注册到nacos中。
gateway的主要功能都是通过配置文件产生作用的,在application.yml中进行配置。
路由功能
routes: - id: user-service #唯一标识 uri: lb://userservice #路径 也可以写成 http://ip:端口 predicates: - Path=/user/** #路径断言 判断是否user开头 # filters: # - AddRequestHeader=cn,nb - id: order-service uri: lb://orderservice predicates: - Path=/order/** - Before=2031-04-13T15:14:47.433+08:00[Asia/Shanghai] default-filters: - AddRequestHeader=cn,nb
跨域问题
globalcors: # 全局的跨域处理 add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题 corsConfigurations: '[/**]': allowedOrigins: # 允许哪些网站的跨域请求 - "http://localhost:8090" - "http://www.leyou.com" allowedMethods: # 允许的跨域ajax的请求方式 - "GET" - "POST" - "DELETE" - "PUT" - "OPTIONS" allowedHeaders: "*" # 允许在请求中携带的头信息 allowCredentials: true # 是否允许携带cookie maxAge: 360000 # 这次跨域检测的有效期