EnableSlashMerge插件

启用EnableSlashMerge插件后,Sidecar或网关将在HTTP请求到达业务工作负载前对请求进行预处理,合并路径中相邻的斜杠。如,/a///b将合并为/a/b。此插件无需任何配置字段,直接启用即可。

前提条件

配置示例

验证未开启EnableSlashMerge时的访问

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理

  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择ASM网关 > 入口网关

  3. Kubernetes服务列获取部署的网关的IP地址。 使用浏览器访问http://{网关ip}/encoding/utf8,可以看到标题为Unicode Demo的页面。 使用浏览器访问http://{网关ip}/encoding///utf8,可以看到标题为Not Found的页面。此时由于路径中有冗余的斜杠,导致httpbin服务找不到请求的内容。

验证开启EnableSlashMerge时的访问

  1. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择插件扩展中心 > 插件市场

  2. 插件配置页签中开启本插件EnableSlashMerge,插件生效范围选择全局生效。 使用浏览器访问http://{网关ip}/encoding///utf8,可以看到标题为Unicode Demo的页面。此时插件提前将冗余的斜杠进行了合并,使得httpbin服务可以找到正确的内容。

    说明

    若访问结果不符预期,可能是浏览器缓存行为所致,可以清空浏览器缓存或打开新的无痕窗口进行尝试。