Spring Gateway静态文件路由

Spring Gateway静态文件路由

  • Spring gateway路由简介
  • 路由到其他微服务的API路由
    • Spring zuul
    • Spring Gateway
  • 静态文件服务
    • Spring zuul
    • Spring Gateway
  • 静态文件的缓存配置
  • 小结

Spring gateway路由简介

早期的Spring cloud使用的路由框架是Spring Zuul(spring-cloud-starter-netflix-zuul),采用的是blocking model。在最新的Spring cloud框架中,Spring Gataway(spring-cloud-starter-gateway) 被用来替代Spring Zuul,它采用的是non-blocking model,可以提供更好的路由性能。

无论使用哪一种Spring cloud路由框架,应用的路由信息都是通过环境变量进行配置(configMap,applicaiton.yml或application.property或者在运行时通过-D option指定)。对应Spring zuul,路由的入口是spring.zuul.routes, Spring gateway的是 spring.cloud.gateway.routes.

路由到其他微服务的API路由

路由到其他微服务的配置,通才采用的是micro-service-id的方式(注册在同一个Service Registry中,可被spring gateway微服务发现的服务id)

Spring zuul

spring:
	zuul:
	  routes:
	    test-service:
	      service-id: 
	      sensitive-headers:
	      path: /api/test-service/**

Spring Gateway

spring:
  cloud:
    gateway:
      routes:
      - id: test-service
        uri: lb://
        predicates: 
        - Path=/api/test-service/**

静态文件服务

通常会将如下配置加到路由属性配置的最后一条,做为默认配置,当前面的路由规则都没有被触发的情况下,使用forward的方式,foward到当前微服务(spring gateway)的服务跟目录,匹配静态资源和spring gateway的本地API(静态资源是指放在static目录中的所有的文件)

Spring zuul

spring:
	zuul:
	  routes:
	    local-service:
	      path: /**
	      url: forward:/

Spring Gateway

spring:
  cloud:
    gateway:
      routes:
      - id: local-service
        uri: forward:/
        predicates: 
        - Path=/**

静态文件的缓存配置

当发布一下小的项目的时候,可以把前段的静态资源打包到gateway的static目录,通过gateway作为入口,提供前端资源的访问,同时作为服务路由,提供所有下游微服务的统一入口,静态资源文件的缓存可以通过如下配置属性配置

spring:
  resources:
    cache-period:  28800

小结

当管理一个小型项目时,可以使用spring boot的静态资源的方式,打包前端资源,并把它作为gateway的一部分发布,本文提供了一种配置前端资源的路由方式和页面缓存的配置方式。

你可能感兴趣的:(java,java,后端)