SpringCloud-Zuul网关配置

105 阅读1分钟

1、pom.xml中添加Maven依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
    <version>2.2.3.RELEASE</version>
</dependency>

2、启动类上配置注解

@EnableZuulProxy
@SpringBootApplication
public class CloudZuulApplication {

    public static void main(String[] args) {
        SpringApplication.run(CloudZuulApplication.class, args);
    }

}

3、yml文件中添加配置

基础配置

下面三个分别为网关服务、短信服务、用户服务基础配置

网关服务配置

server:
  port: 9100

spring:
  application:
    name: cloud-zuul

# 注册中心
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7901/eureka/

用户服务配置

server:
  # 服务端口
  port: 7001

spring:
  application:
    # 应用名称
    name: service-user

# 注册中心配置
eureka:
  client:
    enabled: true
    service-url:
      defaultZone: http://localhost:7901/eureka/

路由配置

1.不配置路由

不配置路由则使用默认路由规则:

http://网关ip:网关端口/服务名/接口uri

访问短信服务:http://127.0.0.1:9100/service-sms/test

访问用户服务:http://127.0.0.1:9100/service-user/test:
2.配置 serviceId 路由
# 路由配置
zuul:
  # 网关前缀
  prefix: /api
  routes:
    # 路由规则名(自定义)
    service-user:
      # 映射路径:匹配该路径的请求会转发到对应服务名称的服务,如果有多台实例,会进行负载均衡
      path: /user/**
      # 转发前是否移除 path 中的前缀
      strip-prefix: true
      # 注册中心,服务应用名称
      serviceId: service-user

  # 忽略默认路由规则(忽略直接使用网关+服务名访问)
  ignored-services:
    - service-user

  # 忽略请求头敏感信息(默认值为 "Cookie", "Set-Cookie", "Authorization" ,如果配置空则表示所有请求头都会转发到下游服务)
  sensitive-headers: token
3.配置 url 路由

直接指定转发请求的地址,这种方式不会走负载均衡

zuul:
  routes:
    # 路由规则名(自定义)
    service-user:
      path: /user/**
      url: http://localhost:7001/