SpringCloud-----Zuul的代理转发

本文介绍了Zuul作为SpringCloud的网关代理服务,讲解了其原始代理路径的示例,强调了暴露服务名称的安全隐患,并详细阐述了Zuul代理路由的多种配置方式,以及如何禁止直接使用服务名称访问,最后提到了Zuul的pom.xml和application.yml配置文件的相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Zuul是什么?

Zuul即网关,即代理。

2、Zuul的原始代理路径?

服务A:service-a 端口:8001  用户信息接口名称:/user/get

服务B:service-b 端口:8002

Zuul服务:myzuul 端口:9001  IP:192.168.1.250

访问服务A的原始代理路径如下:

http://192.168.1.250:9001/service-a/user/get?id=10

最终访问结果:

注意:这个时候暴露了我们的服务名称service-a,其实是很危险的。所以我们需要路由代理

3、zuul代理路由的几种配置方式

方式一:

zuul:
  prefix: /me # 路由前缀
  # ignored-services: provider-company # 方法一:忽略服务名称访问
  ignored-services: "*" # 方法二:如果微服务比较多,则采用通配符的方式配置,进行忽略
  routes:
    provider-company: /company-proxy/** # 写法一: 左边服务名称、右边服务代理名称
    

方式二:

zuul:
  prefix: /me # 路由前缀
  # ignored-services: provider-company # 方法一:忽略服务名称访问
  ignored-services: "*" # 方法二:如果微服务比较多,则采用通配符的方式配置,进行忽略
  routes:
    
    company.path: /company-proxy/**      # 写法二
    company.serviceId: provider-company # 写法二 path+serviceId组合,company为逻辑名称
没有Eureka管理

方式三:

zuul:
  prefix: /me # 路由前缀
  # ignored-services: provider-company # 方法一:忽略服务名称访问
  ignored-services: "*" # 方法二:如果微服务比较多,则采用通配符的方式配置,进行忽略
  routes:
    company.path: /company-proxy/**
    company.url: http://company-8101.com:8101/# 写法三,不建议采用,不方便负载均衡,没有Eureka管理

4、zuul禁止直接用服务名称访问

zuul:
  prefix: /me # 路由前缀
  # ignored-services: provider-company # 方法一:忽略服务名称访问
  ignored-services: "*" # 方法二:如果微服务比较多,则采用通配符的方式配置,进行忽略

5、zuul使用

pom.xml

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

App.java

package com.zemel.zuul;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@SpringBootApplication
@EnableZuulProxy
public class Zuul9501App {

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

	}

}

applicaiton.yml

server:
  port: 9501

eureka:
  client:
    serviceUrl:
      defaultZone: http://admin:admin@eurekaserver-7001.com:7001/eureka,http://admin:admin@eurekaserver-7002.com:7002/eureka,http://admin:admin@eurekaserver-7003.com:7003/eureka
  instance:
    prefer-ip-address: true #访问地址显示
    # 不建议修改以下两项
    # lease-expiration-duration-in-seconds: 2 #心跳间隔时间(默认30s)
    # lease-renewal-interval-in-seconds: 5 #如果现在超过了5s间隔(默认是90秒)

info:
  app.name: geteway
  company.name: www.zemel.cn
  build.artifactId: $project.artifactId$
  build.version: $project.version$
  
spring:
  application:
    name: zuul-gateway

zuul:
  prefix: /me # 路由前缀
  # ignored-services: provider-company # 方法一:忽略服务名称访问
  ignored-services: "*" # 方法二:如果微服务比较多,则采用通配符的方式配置,进行忽略
  routes:
    #provider-company: /company-proxy/** # 写法一: 左边服务名称、右边服务代理名称
    company.path: /company-proxy/**      # 写法二
    #company.serviceId: provider-company # 写法二 path+serviceId组合,company为逻辑名称
    company.url: http://company-8101.com:8101/company/ # 写法三,不建议采用,不方便负载均衡,没有Eureka管理


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值