主题
网关组件
网关组件提供基础的动态路由功能和统一的跨域配置。
组件依赖如下:
xml
<dependency>
<groupId>cn.zjtele.pubinfo.cloud</groupId>
<artifactId>pubinfo-cloud-starter-gateway</artifactId>
</dependency>
动态路由
网关第一次启动时,会将application-routes.yaml中的路由配置推送至nacos,后续路由配置的修改,则以nacos配置为准。网关会监听nacos的路由配置修改,实时变更路由策略。
底座采用的路由配置策略如下:
yaml
pubinfo:
gateway:
routes:
- id: pubinfo-auth
uri: lb://pubinfo-auth
predicates:
- name: Path
args:
pattern: /api/pubinfo-auth/**
filters:
- StripPrefix=1
- AddRequestHeader=X-Forwarded-Prefix,/api/pubinfo-auth
注意
- predicates中,默认添加了统一的前缀api,可自行变更。
- filters列表中,第一个filter去掉了api前缀,第二个filter增加了header
X-Forwarded-Prefix
,用于微服务下swagger文档的正确显示,header的值为/api
+ 对应微服务的/contextPath
。
跨域配置
微服务模式下,跨域的配置统一由网关进行配置,各微服务把跨域配置关掉(pubinfo.core.enable=false
),配置内容如下:
yaml
pubinfo:
cors:
enable: true
allow-origin: '*'
allowedMethods: '*'
allowedHeaders: '*'
allowCredentials: false
注意
allow-origin: '\*'
与 allowCredentials: true
不能同时存在