【Path Rewrite】重寫請求路徑
更新時(shí)間:
配置重寫請求路徑可以使HTTP請求的路徑在轉(zhuǎn)發(fā)到目標(biāo)應(yīng)用程序之前被重寫為指定值。本文介紹如何配置重寫請求路徑。
前提條件
已完成準(zhǔn)備工作,并部署httpbin服務(wù)和sleep服務(wù)。具體操作,請參見準(zhǔn)備工作。
操作步驟
使用istioctl工具,執(zhí)行以下命令,為httpbin服務(wù)部署Waypoint代理。
istioctl x waypoint apply --service-account httpbin
預(yù)期輸出:
waypoint default/httpbin applied
為httpbin服務(wù)配置虛擬服務(wù),當(dāng)匹配到發(fā)往httpbin服務(wù)的請求路徑為
/get
時(shí),將請求路徑重寫為/status/400
。登錄ASM控制臺(tái),在左側(cè)導(dǎo)航欄,選擇 。
在網(wǎng)格管理頁面,單擊目標(biāo)實(shí)例名稱,然后在左側(cè)導(dǎo)航欄,選擇 ,然后單擊創(chuàng)建。
在創(chuàng)建頁面,進(jìn)行如下配置,單擊預(yù)覽,確認(rèn)YAML內(nèi)容無誤后,單擊確認(rèn),然后單擊創(chuàng)建。
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: httpbin namespace: default spec: hosts: - httpbin.default.svc.cluster.local http: - rewrite: uri: /status/400 route: - destination: host: httpbin.default.svc.cluster.local
執(zhí)行以下命令,驗(yàn)證路徑重寫配置是否生效。
kubectl exec -it deploy/sleep -- curl httpbin:8000/get -I
預(yù)期輸出:
HTTP/1.1 400 Bad Request server: istio-envoy date: xxx, xx xxx 202x xx:xx:xx GMT content-type: text/html; charset=utf-8 access-control-allow-origin: * access-control-allow-credentials: true content-length: 0 x-envoy-upstream-service-time: 4
可以看到在sleep容器內(nèi)部訪問httpbin服務(wù)的
/get
路徑,發(fā)往此路徑的請求應(yīng)該獲得200響應(yīng)狀態(tài)碼,但此時(shí)獲得400響應(yīng)狀態(tài)碼。證明路徑重寫生效,請求的路徑被重寫為/status/400
。
文檔內(nèi)容是否對您有幫助?