问题:请求中的双斜杠会导致请求无法解析
包含两个(或更多)连续斜杠的请求可能会导致 404 错误。例如 /hello//world/
。此示例中的问题是 hello
和 world
之间的“//
”。
解决方案:过滤双斜杠
将配置应用于 Istio Ingress,以过滤请求中的双斜杠,并替换它们。
- 创建名为
apigee-merge-slash-filter.yaml
的新配置文件。 - 将以下内容粘贴到文件中:
apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata: name: apigee-merge-slashes namespace: istio-system spec: workloadSelector: labels: app: istio-ingressgateway configPatches: - applyTo: NETWORK_FILTER # http connection manager is a filter in Envoy match: context: GATEWAY listener: filterChain: filter: name: "envoy.http_connection_manager" patch: operation: MERGE value: typed_config: "@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager" merge_slashes: true
- 使用以下命令应用配置:
kubectl apply -f apigee-merge-slash-filter.yaml