您好,登錄后才能下訂單哦!
zuul路由的幾個配置參數
1.靜態路由
zuul:
routes:
myroute1:
path: /mypath/**
url: http://localhost:8080 (注意這里url要http://開頭)
2.靜態路由+ribbon負載均衡/故障切換
zuul:
routes:
myroutes1:
path: /mypath/**
serviceId: myserverId
myserverId:
ribbon:
listOfServers: localhost:8080, localhost:8081
ribbon:
eureka:
enabled: false
3.動態路由+ribbon負載均衡/故障切換
zuul:
routes:
myroutes1:
path: /mypath/**
serviceId: myserviceId
eureka:
client:
serviceUrl:
defaultZne:xxx
4.路由匹配的一些配置
stripPrefix=true,轉發會過濾掉前綴。
path: /myusers/**,默認時轉發到服務的請求是/**,如果stripPrefix=false,轉發的請求是/myusers/**
zuul.prefix=/api 會對所有的path增加一個/api前綴
ignoredPatterns: /**/admin/** 過濾掉匹配的url
route:
users: /myusers/** 會匹配所有/myusers/**的url,但由于ignoredPatterns, /myusers/**/admin/**的請求不會被轉發,而是直接由zuul里的接口接收
匹配順序
path:/myusers/**
path:/** 如果是在application.yml中配置的,那么會優先匹配/myusers/**
但如果是applicaiton.properties配置的,那么可能導致/myusers/**被/**覆蓋
ignored-Services: '*' 對于自動發現的services,除了route中明確指定的,其他都會被忽略
5.請求頭過濾
route.sensitiveHeaders: Cookie,Set-Cookie,Authorization
默認就有這三個請求頭,意思是不向下游轉發請求這幾個頭
zuul.ignoredHeaders 是一個全局設置,而route.sensitiveHeaders是局部設置
zuul過濾器
標準的zuul過濾器有4中,分別對應一次路由轉發的幾個關鍵點;
pre: 在路由轉發之前起作用
routing: 在路由時其作用
post: 在把結果返回給瀏覽器時起作用
error: 在整個路由階段,出現異常時起作用
如果要分析前端傳來的參數,驗證前端身份等對前端參數的操作,顯然是用pre過濾器
如果是要對返回給前端的結果進行操作或者分析,顯然是用post過濾器
編寫自定義路由器
public class MyFilter extends ZuulFilter{
filterType() 重寫,返回這個過濾器的類型
filterOrder() 重寫,返回這個過濾器在過濾器鏈的順序
shouldFilter() true啟動
run() 具體邏輯
}
然后向Spring注入這個Bean就行了
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。