本文原創地址,
我的博客
:https://jsbintask.cn/2019/04/11/springcloud/springcloud-zuul-config/(食用效果最佳),轉載請註明出處!
SpringCloud Zuul同系列文章:
SpringCloud-Zuul(一):技術選型及請求流程源碼走讀
SpringCloud-Zuul(二):自定義Filter及內部路由源碼解析
SpringCloud-Zuul(三):常用配置詳解
前言
SpringCloud-Zuul的配置都較爲簡單,介紹下spring-cloud-zuul常用配置.
配置詳情
- 配置開啓網關代理。
在啓動類上加上註解@EnableZuulProxy
即可。 - 配置微服務路由轉發
zuul:
prefix: /api
routes:
a:
path: /a/**
service-id: service-a
b:
path: /b/**
service-id: service-b
service-id爲微服務在註冊中心的名稱。 prefix爲訪問所有api都需要加上的前綴。a,b爲每個服務的映射(可以隨便寫),例如現在a服務有一個controller: /user/{userId},那麼經過網關映射後的全路徑爲:/api/a/user/{userId}
,這相當於給所有服務的api添加了別名,方便管理!
- 路由轉發超時配置
zuul的默認路由轉發超時時間只有2s,因爲它內部使用ribbon
作負載均衡處理,所以我們需要配置ribbon的超時時間:
ribbon:
ReadTimeout: 5000
SocketTimeout: 5000
- 敏感頭配置
zuul默認過濾了所有的http header,這代表被代理的微服務將沒有任何請求頭,我們需要添加如下配置:
zuul:
sensitive-headers:
sensitive-headers表示要被過濾的頭,爲空則可放行所有請求頭。
- 過濾返回的請求頭
有時候我們需要把被代理的微服務返回的請求頭過濾掉(例如跨域在網關添加了,如果各微服務也添加了也將造成跨域失敗,所以我們需要過濾掉):
zuul:
ignored-headers:
- Access-Control-Allow-Origin
- Access-Control-Allow-Methods
- Access-Control-Allow-Headers
- Access-Control-Allow-Credentials
- Access-Control-Max-Age
關注我,這裏只有乾貨!