[英]istio: VirtualService url rewriting or forwarding
我有一個帶有匹配和路由的 Istio VirtualService,重定向 url 定義如下:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-pro
spec:
hosts:
- "*"
gateways:
- my-gateway
http:
- match:
- uri:
prefix: /events
route:
- destination:
host: event-service
port:
number: 8000
- match:
- uri:
prefix: /blog
redirect:
uri: /
authority: blog.mydomain.com
- route:
- destination:
host: default-service
port:
number: 8000
這個 VirtualService 的工作方式如下:
在第 2 種情況下,我將www.mydomain.com/blog重定向到blog.mydomain.com頁面,因為我的博客頁面托管在該域上。
現在我的問題是在重定向 URL 時,瀏覽器 URL 正在更改為blog.mydomain.com 。 我希望它保持不變www.mydomain.com/blog但blog.mydomain.com的內容應該顯示在屏幕上。
我認為您應該使用帶有目的地的重寫: https://istio.io/latest/docs/reference/config/networking/virtual-service/#HTTPRewrite
如果目的地在服務網格之外,你還需要一個 ServiceEntry
- match:
- uri:
prefix: /blog
name: blog.mydomain.com
rewrite:
authority: blog.mydomain.com
uri: /blog
route:
- destination:
host: blog.mydomain.com
在虛擬服務中添加上面的規則,然后創建這個服務入口。
apiVersion:.networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: blog spec: hosts: - blog.mydomain.com location: MESH_EXTERNAL ports: - number: 80 name: http protocol: HTTP resolution: DNS
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.