gateway网关的重要作用之一便是进行路由转发工作。经常遇到转发失败的问题。
比如前端配置如下:

 // api接口请求地址
 window.SITE_CONFIG['baseUrl'] = 'http://localhost:90/api';

gateway的application.yml配置如下:

server:
  port: 90
spring:
  application:
    name: threat-gateway
  cloud:
    gateway:
      routes:
#        threat-ip微服务路由转发
        - id: ip_route
#          匹配路由的转发地址
          uri: lb://threat-ip
          predicates:
            - Path=/api/cyber_threat_ip/**
          filters:
            - RewritePath=/api/(?<segment>.*),/$\{segment}

访问报错,原因可能是没有启用注册中心(比如nacos),导致微服务名称识别不了。
修改后如下:

#          匹配路由的转发地址(8082为threat-ip微服务端口)
          uri: localhost:8082

结果还是访问报错,因为需要在该uri的前面加上http://,如下:

#          匹配路由的转发地址(8082为threat-ip微服务端口)
          uri: http://localhost:8082

结果便可以访问了。
在这里插入图片描述
当然还有可能filters中的RewritePath路径重写错误等原因导致访问报错。其他原因以后补充。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐