添加依赖

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

添加gateway依赖

添加配置类

@Configuration
public class CrosConfiguration {

    @Bean
    public CorsWebFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedMethod("*");
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
        source.registerCorsConfiguration("/**", config);

        return new CorsWebFilter(source);
    }
}

在gateway项目中加入改配置类可解决跨域问题。

微服务环境中配置路由

# 服务端口
server.port=7070
# 服务名
spring.application.name=service-gateway
# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#使用服务发现路由
spring.cloud.gateway.discovery.locator.enabled=true
#路由的id,没有规定规则但要求唯一,建议配合服务名
spring.cloud.gateway.routes[0].id=service-user
#匹配后提供服务的路由地址,在微服务环境中为lb:服务名,其他环境可以是具体域名或ip
spring.cloud.gateway.routes[0].uri=lb://service-user
#匹配规则,下面为请求路径中带user
spring.cloud.gateway.routes[0].predicates= Path=/*/user/**

例如gateway服务于8081端口启动,localhost:8081/api/user/getname这个请求会被转发到service-user/api/user/getnamelocalhost:8081/api/user/getage/123这个请求会被转发到service-user/api/user/getage/123
其他gateway的配置方法可以参考: https://cloud.tencent.com/dev...


guomz
16 声望1 粉丝

不求做完人,只求做凡人。