0

最近我设置了一个 EKS 集群来通过 ingress-nginx 运行应用程序。我正在尝试使用正则表达式捕获并nginx.ingress.kubernetes.io/rewrite-target更改我的 url 参数,但它的行为不像我期望的那样。这是我的配置

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    meta.helm.sh/release-name: sandbox1
    meta.helm.sh/release-namespace: sandbox1
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /\$1?\$2
    nginx.ingress.kubernetes.io/enable-rewrite-log: "true"
  labels:
    app.kubernetes.io/component: api-gateway
    app.kubernetes.io/instance: sandbox1
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: api-gateway
    app.kubernetes.io/part-of: fusion
    app.kubernetes.io/version: "5"
    helm.sh/chart: api-gateway-1.8.0
  name: sandbox1-api-gateway
  namespace: sandbox1
spec:
  rules:
  - host: app.example.com
    http:
      paths:
      - backend:
          serviceName: proxy
          servicePort: 6764
        path: /(.*)\?(.*)

如果我做:

curl -i -k https://app.example.com/something/bla1/bla2?param1=a&param2=b

重写日志显示

"Basic.*" does not match ""

这里发生了一些奇怪的事情,因为如果我更改配置path: /(.*)bla1(.*)并再次执行相同的 curl 请求,则正则表达式匹配并且重定向正确发生(就像这个例子一样愚蠢)。

  • 我想知道?角色没有正确匹配吗?
  • 不能使用 url 参数来操作nginx.ingress.kubernetes.io/rewrite-target吗?
  • 也许我错过了什么?

欢迎任何帮助,谢谢。

4

0 回答 0