15-网关-路由配置

4.4 路由配置

4.4.1需求分析

Zuul网关具有代理的功能,根据请求的url转发到微服务,如下图:
在这里插入图片描述
客户端请求网关/api/learning,通过路由转发到/learning
客户端请求网关/api/course,通过路由转发到/course

4.4.2 路由配置

在appcation.yml中配置:

zuul:
  routes:
    manage‐course: #路由名称,名称任意,保持所有路由名称唯一
      path: /course/**
      serviceId: xc‐service‐manage‐course #指定服务id,从Eureka中找到服务的ip和端口
      #url: http://localhost:31200 #也可指定url
      strip‐prefix: false #true:代理转发时去掉前缀,false:代理转发时不去掉前缀
      sensitiveHeaders: #默认zuul会屏蔽cookie,cookie不会传到下游服务,这里设置为空则取消默认的黑名单,如果设置了具体的头信息则不会传到下游服务
      # ignoredHeaders: Authorization

serviceId:推荐使用serviceId,zuul会从Eureka中找到服务id对应的ip和端口。
strip-prefix: false #true:代理转发时去掉前缀,false:代理转发时不去掉前缀,例如,为true请
求/course/coursebase/get/…,代理转发到/coursebase/get/,如果为false则代理转发到/course/coursebase/get
sensitiveHeaders:敏感头设置,默认会过虑掉cookie,这里设置为空表示不过虑
ignoredHeaders:可以设置过虑的头信息,默认为空表示不过虑任何头
在这里插入图片描述
启动服务
在这里插入图片描述
加粗样式

4.4.3 测试

http://localhost:31200/course/teachplan/list/4028e581617f945f01617f9dabc40000
在这里插入图片描述
http://localhost:50201/api/course/teachplan/list/4028e581617f945f01617f9dabc40000
在这里插入图片描述

请求 http://localhost:31200/course/teachplan/list/4028e581617f945f01617f9dabc40000

http://localhost:50201/api/course/teachplan/list/4028e581617f945f01617f9dabc40000是网关地址,通过路由转发到xc-service-manage-course服务。

由于课程管理已经添加了授课拦截,这里为了测试网关功能暂时将“/course/teachplan/list”url排除认证。
在课程管理服务的 ResourceServerConfig类中添加"/course/teachplan/list/*",代码如下:

@Override
public void configure(HttpSecurity http) throws Exception {
//所有请求必须认证通过
http.authorizeRequests()
//下边的路径放行
.antMatchers("/v2/api‐docs", "/swagger‐resources/configuration/ui",
"/swagger‐resources","/swagger‐resources/configuration/security",
"/swagger‐ui.html","/course/teachplan/list/*")
.permitAll()
.anyRequest().authenticated();
}

如果运行报错提示xc-service-manage-course这个服务找不到
将这个单词的中划线重新写下,可能出现编码问题。
在这里插入图片描述

4.4.4 完整的路由配置

zuul:
  routes:
    manage‐course: #路由名称,名称任意,保持所有路由名称唯一
      path: /course/**
      serviceId: xc-service-manage-course #指定服务id,从Eureka中找到服务的ip和端口
      #url: http://localhost:31200 #也可指定url
      strip‐prefix: false #true:代理转发时去掉前缀,false:代理转发时不去掉前缀
      sensitiveHeaders: #默认zuul会屏蔽cookie,cookie不会传到下游服务,这里设置为空则取消默认的黑名单,如果设置了具体的头信息则不会传到下游服务
      # ignoredHeaders: Authorization
    xc‐service‐learning: #路由名称,名称任意,保持所有路由名称唯一
      path: /learning/**
      serviceId: xc‐service‐learning #指定服务id,从Eureka中找到服务的ip和端口
      strip‐prefix: false
      sensitiveHeaders:
    manage‐cms:
      path: /cms/**
      serviceId: xc‐service‐manage‐cms
      strip‐prefix: false
      sensitiveHeaders:
    manage‐sys:
      path: /sys/**
      serviceId: xc‐service‐manage‐cms
      strip‐prefix: false
      sensitiveHeaders:
    service‐ucenter:
      path: /ucenter/**
      serviceId: xc‐service‐ucenter
      sensitiveHeaders:
      strip‐prefix: false
    xc‐service‐manage‐order:
      path: /order/**
      serviceId: xc‐service‐manage‐order
      sensitiveHeaders:
      strip‐prefix: false

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值