SpringCloud-Gateway转发请求与跨域配置

SpringCloud-Gateway统一处理请求

  1. 在分布式项目中,前端调用后端服务接口由于存在请求路径和端口不一致的问题,会导致前端调用接口ip地址的不统一问题,使用网关可以很好的解决这一难点。

  2. 在父项目中新建一个模块,用于处理网关、跨域等相关问题,例如网关模块端口为80,那么前端vue所调用的所有请求都统一发给这个80端口的网关,再由网关统一处理请求转发到不同的服务。

  3. 使用网关处理请求的基本配置(首先确保所有服务成功注册到注册中心):

spring:
  application:
    name: gulimall-gateway
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

    gateway:
      routes:
        - id: product-route
          uri: lb://gulimall-product
          predicates:
            - Path=/api/product/**
          filters:
            - RewritePath=/api(?<segment>/?.*),/$\{segment}

        - id: admin_route
          uri: lb://renren-fast
          predicates:
            - Path=/api/**
          filters:
            - RewritePath=/api(?<segment>/?.*),/renren-fast/$\{segment}

首先将网关也要注册到注册中心,然后配置网关的路由规则, -id 代表一个路由名称,保证唯一即可。uri 代表需要将请求转发到哪个服务的名称,predicates断言代表判断,满足条件就会执行转发。filters的- RewritePath将满足条件的路径进行重写。

posted @ 2022-07-19 17:05  加瓦同学  阅读(1555)  评论(0)    收藏  举报