























我有一个 ingress 转发的配置,就是把匹配/dhq 前缀的请求,转发到后端服务, 访问 /dhq/api/v1/%40aa
ingress 转发时会直接 把它还原成 /api/v1/@aa
但我就是不想给他还原,大佬们,有啥经验建议么,目前试了几个 ai 给的答案都不奏效
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 200m
nginx.ingress.kubernetes.io/proxy-next-upstream-timeout: "60"
nginx.ingress.kubernetes.io/proxy-read-timeout: "360"
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Accept-Encoding "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/enable-rewrite-log: "true"
name: dhq-ingress
namespace: monitor
spec:
ingressClassName: idataexplorer
rules:
- http:
paths:
- backend:
service:
name: dhq-service
port:
number: 80
path: /dhq(/|$)(.*)
pathType: ImplementationSpecific
第 1 条附言 · 2025 年 9 月 19 日
这个是 ingress 把 uri 还原的具体日志
原始 uri 是 /dhq/mos/aa%40aa.sh?tagging
```
2025/09/19 07:00:15 [notice] 18054#18054: *46865544 "(?i)/dhq(/|$)(.*)" matches "/dhq/mos/[email protected]", client: 10.10.241.64, server: _, request: "GET /dhq/mos/aa%40aa.sh?tagging HTTP/1.1", host: "20.20.45.26", referrer: "http://20.20.45.26:6690/"
2025/09/19 07:00:15 [notice] 18054#18054: *46865544 rewritten data: "/mos/[email protected]", args: "tagging", client: 10.10.241.64, server: _, request: "GET /dhq/mos/aa%40aa.sh?tagging HTTP/1.1", host: "20.20.45.26", referrer: "http://20.20.45.26:6690/"
10.10.241.64 - - [19/Sep/2025:07:00:15 +0000] "GET /dhq/mos/aa%40aa.sh?tagging HTTP/1.1" 403 239 "http://20.20.45.26:6690/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36" 497 0.002 [monitor-dhq-service-80] [] 20.20.45.27:8002 239 0.002 403 9e7d3ad78c5b90d6473b14d1ae75423b
```
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。