Gateway网关配置

- id:  oauth
  uri: lb://oauth-server
  predicates:
    - Path=/oauth/**
  filters:
    - StripPrefix=0
    - PreserveHostHeader

经过K8s+Docker环境实测,PreserveHostHeader必须设置, 否则Spring OAuth转发之后的响应中Location的中的域名采用的是IP+Port

StripPrefix=0

StripPrefix: 参数表示在将请求发送到下游之前从请求中剥离的路径个数.

例如: 当通过网关向/oauth/login发出请求时:
StripPrefix=0请求url将类似于http://gateway-hostname/oauth/login
StripPrefix=1请求url将类似于http://gateway-hostname/login 

PreserveHostHeader 

@Configuration
@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMissing = true)
@EnableConfigurationProperties
@AutoConfigureBefore(HttpHandlerAutoConfiguration.class)
@AutoConfigureAfter({GatewayLoadBalancerClientAutoConfiguration.class, GatewayClassPathWarningAutoConfiguration.class})
@ConditionalOnClass(DispatcherHandler.class)
public class GatewayAutoConfiguration {
    //......
	@Bean
	public PreserveHostHeaderGatewayFilterFactory preserveHostHeaderGatewayFilterFactory() {
		return new PreserveHostHeaderGatewayFilterFactory();
	}
    //......
}

PreserveHostHeaderGatewayFilter就是在gateway转发请求的时候把原始请求的host头部带上,转发给目标服务。默认该filter是启用的。

 

简易网关设计 

在这里插入图片描述

 

源码(还在完善中)

xiaxinyu/ms-gatewayhttps://gitee.com/xiaxinyu3_admin/ms-gateway.githttps://gitee.com/xiaxinyu3_admin/ms-authorization.giticon-default.png?t=LA92https://gitee.com/xiaxinyu3_admin/ms-authorization.git

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐