You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Kubernetes Ingress的路径匹配不区分大小写?

Kubernetes Ingress路径不区分大小写配置方案

Kubernetes原生Ingress资源(networking.k8s.io/v1)本身不支持路径的不区分大小写匹配,路径匹配是严格按定义的字符串执行的。要实现需求,需依赖你使用的Ingress Controller的扩展特性,以下是两种主流控制器的实现方法:

NGINX Ingress Controller 配置方法

方法1:使用官方注解(推荐,需版本≥0.21.0)

直接添加nginx.ingress.kubernetes.io/case-sensitive注解开启不区分大小写匹配,修改后的Ingress配置如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: APP
  namespace: NAMESPACE
  annotations:
    nginx.ingress.kubernetes.io/case-sensitive: "false"
spec:
  rules:
    - http:
        paths:
          - path: /foo
            pathType: Prefix
            backend:
              service:
                name: APP
                port:
                  number: 80

方法2:配置Lua片段(兼容旧版本)

如果你的NGINX Ingress Controller版本较低,不支持上述注解,可以通过配置片段将请求URI转为小写后匹配:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: APP
  namespace: NAMESPACE
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      rewrite_by_lua_block {
        ngx.var.uri = string.lower(ngx.var.uri)
      }
spec:
  rules:
    - http:
        paths:
          - path: /foo
            pathType: Prefix
            backend:
              service:
                name: APP
                port:
                  number: 80

Traefik Ingress Controller 配置方法

Traefik通过中间件实现路径大小写转换,步骤如下:

  1. 创建一个小写转换中间件
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: lowercase-path
  namespace: NAMESPACE
spec:
  lowerCase:
    enabled: true
  1. 在Ingress资源中引用该中间件
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: APP
  namespace: NAMESPACE
  annotations:
    traefik.ingress.kubernetes.io/router.middlewares: NAMESPACE-lowercase-path@kubernetescrd
spec:
  rules:
    - http:
        paths:
          - path: /foo
            pathType: Prefix
            backend:
              service:
                name: APP
                port:
                  number: 80

核心逻辑是通过Ingress Controller的扩展能力,将请求路径统一转为小写(或大写),再与Ingress中定义的标准化路径(建议统一为小写)匹配,从而实现不区分大小写的路径匹配效果。

内容的提问来源于stack exchange,提问作者vaisakh raveendran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:10:09