最近我设置了一个 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¶m2=b
重写日志显示
"Basic.*" does not match ""
这里发生了一些奇怪的事情,因为如果我更改配置path: /(.*)bla1(.*)
并再次执行相同的 curl 请求,则正则表达式匹配并且重定向正确发生(就像这个例子一样愚蠢)。
- 我想知道
?
角色没有正确匹配吗? - 不能使用 url 参数来操作
nginx.ingress.kubernetes.io/rewrite-target
吗? - 也许我错过了什么?
欢迎任何帮助,谢谢。