istio:VirtualService 重写到根 url
istio: VirtualService rewrite to the root url
我有一个 Istio 1.4.6 VirtualService,其中包含匹配项和 url 重写,定义如下:
match:
- authority:
prefix: example.com
uri:
prefix: /foo/bar
rewrite:
uri: /
route:
- destination:
host: some-service
port:
number: 80
我想重写如下:
指向 /foo/bar
的流量或其任何子路径应重写为 /
加上 some-service
.
上的任何子路径
i.e.
example.com/foo/bar -> some-service
example.com/foo/bar/subpath -> some-service/subpath
example.com/foo/bar/subpath/anothersubpath -> some-service/subpath/anothersubpath
但是,当我系统挖掘进入 some-service
的流量时,我看到 Istio 已将路径重写为:
GET //subpath/anothersubpath HTTP/1.1
注意 GET 请求中的两个斜杠。在 VirtualService spec rewrite.uri
字段中,我似乎无法将该字段留空或在其中添加空字符串。这样做会导致资源无法验证。
即我不能这样做:
rewrite:
uri: ""
而且不能这样做
rewrite:
uri:
如何定义 VirtualService 重写以将流量发送到目标服务的根目录?任何帮助深表感谢。
我有一个 Istio 1.4.6 VirtualService,其中包含匹配项和 url 重写,定义如下:
match:
- authority:
prefix: example.com
uri:
prefix: /foo/bar
rewrite:
uri: /
route:
- destination:
host: some-service
port:
number: 80
我想重写如下:
指向 /foo/bar
的流量或其任何子路径应重写为 /
加上 some-service
.
i.e.
example.com/foo/bar -> some-service
example.com/foo/bar/subpath -> some-service/subpath
example.com/foo/bar/subpath/anothersubpath -> some-service/subpath/anothersubpath
但是,当我系统挖掘进入 some-service
的流量时,我看到 Istio 已将路径重写为:
GET //subpath/anothersubpath HTTP/1.1
注意 GET 请求中的两个斜杠。在 VirtualService spec rewrite.uri
字段中,我似乎无法将该字段留空或在其中添加空字符串。这样做会导致资源无法验证。
即我不能这样做:
rewrite:
uri: ""
而且不能这样做
rewrite:
uri:
如何定义 VirtualService 重写以将流量发送到目标服务的根目录?任何帮助深表感谢。