הסרת לוכסנים כפולים מבקשות

בעיה: קווים נטויים כפולים בבקשה עלולים לגרום לכך שהבקשה לא תטופל

כל בקשה שמכילה שני קווים נטויים עוקבים (או יותר) עלולה לגרום לשגיאת 404. לדוגמה /hello//world/. הבעיה בדוגמה הזו היא התו '//' בין hello ל-world.

פתרון: סינון לפי קווים אלכסוניים כפולים

מחילים הגדרה על שער הכניסה של Istio כדי לסנן בקשות עם קווים אלכסוניים כפולים ולהחליף אותם.

  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