路由策略配置
更新時間 2024-09-12 11:26:08
最近更新時間: 2024-09-12 11:26:08
分享文章
本章節介紹路由策略配置
概述
在路由詳情頁除了路由基礎信息之外,還可以配置路由策略,當前支持路由級限流、重寫、Header配置、跨域、Cookie重寫、外部認證授權和熔斷等策略配置
限流
當前實現為單機限流,基于時間窗口實現,可以配置時間窗口大小(秒)以及在一個時間窗口內限制的請求數。

重寫
重寫策略可以實現請求向上游轉發請求時重寫path和host,配置如下:

配置參數說明如下:
| 配置 | 說明 |
|---|---|
| 重寫路徑匹配類型 | 支持精確匹配、前綴匹配和正則匹配,只有路徑匹配的請求才會對路徑進行重寫。 |
| 重寫路徑 | 重寫的目標路徑。 |
| 重寫主機域名 | 重寫的目標主機域名。 |
Header配置
Header配置支持對請求和響應的頭部做修改,配置如下:

配置參數說明:
| 配置 | 說明 |
|---|---|
| 開啟狀態 | 開啟時策略才生效。 |
| Header類型 | 網關與后端交互時支持對請求和應答的頭部做修改。 |
| 操作類型 | 支持新增、修改、刪除操作。 新增:若header key已存在,則在末尾追加header value;否則新增。 修改:若header key不存在,則新增header kv;否則覆蓋已有header value值。 刪除:若header key存在,則刪除;否則忽略該header key。 |
| Header Key | 頭部Key。 |
| Header Value | 頭部Value。 |
跨域設置
云原生網關支持路由級別的跨域資源共享(CORS),配置如下:

CORS配置說明如下:
| 配置項 | 說明 |
|---|---|
| 允許訪問的來源 | 作用于Access-Control-Allow-Origin頭部,格式如:scheme://host:port,比如: //foo.ctyun.com:8080,多個值使用','分割,'*'表示所有Origin均允許通過。 |
| 允許的方法 | 作用于Access-Control-Allow-Methods頭部,表示允許的訪問方法。 |
| 允許的請求頭部 | 作用于Access-Control-Allow-Headers頭部,允許跨域訪問時請求方攜帶哪些CORS規范以外的Header,多個值使用','分割,'*'來表示所有Header均允許通過。 |
| 允許的響應頭部 | 作用于Access-Control-Expose-Headers頭部,允許瀏覽器和js腳本訪問的響應頭部。 |
| 允許攜帶憑證 | 作用于Access-Control-Allow-Credentials頭部。 |
| 預檢的過期時間 | 作用于Access-Control-Max-Age頭部。 |
| 開啟狀態 | 開啟時才生效。 |
ProxyCookie配置
該配置支持對上游響應Set-Cookie頭部重寫,當前支持對Set-Cookie頭部里的Domain和Path進行重寫,具體配置如下:
配置項說明:
| 配置項 | 說明 |
|---|---|
| proxy_cookie_domain匹配規則 | 匹配上游應答Set-Cookie頭部的Domain字段,支持正則匹配。 |
| proxy_cookie_domain替換值 | 如果匹配,Set-Cookie頭部Domain字段將被替換成該配置值。 |
| proxy_cookie_path匹配規則 | 匹配上游應答Set-Cookie頭部的Path字段,支持正則匹配。 |
| proxy_cookie_path替換值 | 如果匹配,Set-Cookie頭部Path字段將被替換成該配置值。 |
Query參數設置
該配置支持對請求參數進行修改,具體配置如下:

配置項說明:
| 配置 | 說明 |
|---|---|
| 開啟狀態 | 開啟時策略才生效。 |
| 操作類型 | 支持新增、修改、刪除操作。 新增:若請求參數已存在,則在末尾追加;否則新增。 修改:若請求參數不存在,則新增該參數;否則覆蓋已有參數值。 刪除:若請求參數存在,則刪除;否則忽略該參數。 |
| 參數名 | 請求參數key。 |
| 參數值 | 請求參數Value。 |
外部認證授權
該配置支持通過第三方外部服務進行身份認證與授權。當身份認證失敗時,可以實現自定義錯誤或者重定向到認證頁面的場景。具體配置如下:
配置項說明
| 配置 | 說明 |
|---|---|
| 開啟狀態 | 開啟時配置才生效。 |
| 服務地址 | 設置外部認證服務的地址(例如://localhost:9188)。 |
| 請求方法 | 客戶端向認證服務發送請求的方法。當設置為POST時,會將請求體轉發給認證服務。 |
| 轉發到認證服務的請求頭 | 設置需要由客戶端轉發給認證服務的請求頭。如果沒有設置,則只發送如X-Forwarded-XXX的請求頭。 |
| 轉發給上游服務的請求頭 | 認證通過時,由認證服務轉發給上游服務的響應頭。如果不設置則不轉發任何響應頭。 |
| 轉發給客戶端的請求頭 | 認證失敗時,由認證服務向客戶端發送的響應頭。如果不設置則不轉發任何響應頭。 |
| 驗證ssl證書 | 當開啟時,驗證SSL證書,默認開啟。 |
| 認證服務請求超時時間 | 認證服務請求超時時間。 |
| 長連接超時時間 | 長連接超時時間。 |
熔斷設置
該配置支持在觸發上游服務不健康狀態時進行熔斷,從而保護上游業務服務。具體配置如下:

配置項說明
| 配置 | 說明 |
|---|---|
| 開啟狀態 | 開啟時配置才生效。 |
| 上游服務健康狀態碼 | 上游服務處于健康狀態時的HTTP狀態碼。 |
| 上游服務連續正常請求次數 | 上游服務觸發健康狀態的連續正常請求次數。 |
| 上游服務不健康狀態碼 | 上游服務處于不健康狀態時的HTTP狀態碼。 |
| 觸發異常請求次數 | 上游服務在一定時間內觸發不健康狀態的異常請求次數。 |
| 熔斷最大持續時間 | 上游服務熔斷的最大持續時間,以秒為單位。 |
| 不健康返回錯誤碼 | 當上游服務處于不健康狀態時返回的HTTP錯誤碼。 |
| 不健康返回響應體信息 | 當上游服務處于不健康狀態時返回的HTTP響應體信息。 |
| 不健康返回響應頭信息 | 當上游服務處于不健康狀態時返回的HTTP響應頭信息。該字段僅在配置了不健康返回響應體信息時才生效。 |