1.加入eureka-client和zuul启动器
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
2.添加application.yml相关配置
server:
port: 10010
spring:
application:
name: xxxx-gateway
eureka:
client:
service-url:
defaultZone: http://localhost:10086/eureka
registry-fetch-interval-seconds: 5
zuul:
prefix: /api
routes:
item-service: /item/** #路由到商品的微服务
search-service: /search/** #路由到搜索微服务
- 添加启动类
@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class);
}
}
- 用网关处理跨越相关请求
@Configuration
public class CorsConfiguration {
@Bean
public CorsFilter corsFilter() {
// 初始化cors配置对象
CorsConfiguration corsConfiguration = new CorsConfiguration();
// 允许跨域的域名,如果要携带cookie,不能写*, *代表所有域名都可以跨域访问
corsConfiguration.addAllowedOrigin("http://manage.xxxx.com");
corsConfiguration.addAllowedOrigin("http://www.xxxx.com");
corsConfiguration.setAllowCredentials(true); //设置是否允许携带cookie
corsConfiguration.addAllowedMethod("*"); // 代表所有的请求方法, GET, POST, PUT, Delete
corsConfiguration.addAllowedHeader("*"); // 允许携带任何头信息
// 初始化cors配置源对象
UrlBasedCorsConfigurationSource configurationSource = new UrlBasedCorsConfigurationSource();
configurationSource.registerCorsConfiguration("/**", corsConfiguration);
// 返回corsFilter实例, 参数: cors配置源对象
return new CorsFilter(configurationSource);
}
}