配置重写请求路径可以使HTTP请求的路径在转发到目标应用程序之前被重写为指定值。本文介绍如何配置重写请求路径。
前提条件
已完成准备工作,并部署httpbin服务和sleep服务。具体操作,请参见准备工作。
操作步骤
-
为httpbin服务配置虚拟服务,当匹配到发往httpbin服务的请求路径为
/get时,将请求路径重写为/status/400。-
登录ASM控制台,在左侧导航栏,选择。
-
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择,然后单击创建。
-
在创建页面,进行如下配置,单击预览,确认YAML内容无误后,单击确认,然后单击创建。
配置命名空间为
default,名称为httpbin,作用范围选中作用于所有Sidecar,所属服务选择httpbin.default.svc.cluster.local。在HTTP路由的请求匹配规则中,开启匹配请求的URI,匹配方式选择精确,匹配内容填写/get。路由目的地的服务名称填写httpbin.default.svc.cluster.local。展开高级选项,开启重定向或重写并选择重写,将原path改为填写/status/400。
-
-
执行以下命令,验证路径重写配置是否生效。
kubectl exec -it deploy/sleep -- curl httpbin:8000/get -I预期输出:
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容器内部访问httpbin服务的
/get路径,发往此路径的请求应该获得200响应状态码,但此时获得400响应状态码。证明路径重写生效,请求的路径被重写为/status/400。
该文章对您有帮助吗?