springcloud 服务网关Zuul实战(二)路由访问映射规则
上篇文中已经讲完基本的路由配置,但是我们如何对访问的微服务做映射
访问的地址:http://myzuul.com:9527/microservicecloud-dept/dept/get/2
从访问地址可以分析出我们真实的微服务名字,我们为了安全起见将真实的微服务名字隐藏,暴露虚拟的微服务名称
1,修改yml文件
增加下面的
相关yml文件配置如下
server:
port: 9527
spring:
application:
name: microservicecloud-zuul-gateway
eureka:
client:
service-url:
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
instance:
instance-id: gateway-9527.com
prefer-ip-address: true
zuul:
#ignored-services: microservicecloud-dept
#prefix: /atguigu
#ignored-services: "*"
routes:
mydept.serviceId: microservicecloud-dept
mydept.path: /mydept/**
info:
app.name: atguigu-microcloud
company.name: www.atguigu.com
build.artifactId: $project.artifactId$
build.version: $project.version$
访问http://myzuul.com:9527/mydept/dept/get/1
我们来访问下没有映射的地址试试 http://myzuul.com:9527/microservicecloud-dept/dept/get/2
似乎也能访问,好像没有起到屏蔽的作用,那怎么办呢?
我们加一句这样的配置 ignored-services: microservicecloud-dept(忽略这个真实的微服务)
我们在重新启动访问 http://myzuul.com:9527/microservicecloud-dept/dept/get/2
原来的真实微服务名称就已经屏蔽,无法访问
http://myzuul.com:9527/mydept/dept/get/3 这个虚拟路径正常
下面我们在讲一下为微服务名称设置统一的访问路径前缀pom文件配置修改,增加前缀配置
增加之后访问http://myzuul.com:9527/mydept/dept/get/3 无法访问,原因是访问路径设置了前缀
访问路径增加了前缀之后 http://myzuul.com:9527/atguigu/mydept/dept/get/3 正常访问
到这里我们也基本讲完了映射规则,但是有一点我们这里需要提一下,假设我们要忽略很多真实的微服务,我们如何屏蔽,其实很简单只需要将pom文件配置修改,将具体的要屏蔽的真实微服务改成 "*"
好了就是这么简单,到这里讲完了