Problem: Doppelte Schrägstriche in einer Anfrage können dazu führen, dass die Anfrage nicht aufgelöst wird.
Jede Anfrage, die zwei oder mehr aufeinanderfolgende Schrägstriche enthält, kann zu einem 404-Fehler führen. Beispiel: /hello//world/
. Das Problem in diesem Beispiel ist das "//
" zwischen hello
und world
.
Lösung: Filtern nach doppelten Schrägstrichen
Wenden Sie eine Konfiguration auf das Istio Ingress an, um in Anfragen nach doppelten Schrägstrichen zu filtern und sie zu ersetzen.
- Erstellen Sie eine neue Konfigurationsdatei mit dem Namen
apigee-merge-slash-filter.yaml
. - Fügen Sie Folgendes in die Datei ein:
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
- Wenden Sie die Konfiguration mit diesem Befehl an:
kubectl apply -f apigee-merge-slash-filter.yaml