从请求中移除双斜杠

问题:请求中的双斜杠会导致请求无法解析

包含两个(或更多)连续斜杠的请求可能会导致 404 错误。例如 /hello//world/。此示例中的问题是 helloworld 之间的“//”。

解决方案:过滤双斜杠

将配置应用于 Istio Ingress,以过滤请求中的双斜杠,并替换它们。

  1. 创建名为 apigee-merge-slash-filter.yaml 的新配置文件。
  2. 将以下内容粘贴到文件中:
    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
  3. 使用以下命令应用配置:
    kubectl apply -f apigee-merge-slash-filter.yaml