問題: リクエストにダブル スラッシュを使用すると、リクエストが解決されない
リクエストには 2 つ以上の連続したスラッシュが含まれていると、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