我有以下入口设置:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: grafana
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /grafana/$2
spec:
rules:
- host: my.domain.com
http:
paths:
- backend:
service:
name: grafana
port:
number: 80
path: /grafana(/|$)(.*)
pathType: Prefix
当我点击my.domain.com/grafana
时,我被重定向到https://my.domain/login
,并显示NGINX 404未找到。
根据日志,可以看到grafana
pod被查询命中:
记录器=上下文跟踪ID = 000000000000000000000000000用户ID =0组织ID =0 uname= t=2022-10- 13 T16:19:57.989170173Z级别=信息消息=“请求已完成”方法=GET路径=/grafana/状态=302远程地址=x.x.x.x时间毫秒=0持续时间=718.491µs大小=29引用对象=跟踪ID = 0000000000000000000000000000
然后就什么也没了。
在入口日志下面:
微软公司的Windows NT 10.0、微软的Windows NT 10.0、微软的Windows NT 10.0、微软的Windows NT 10.0、微软的Windows NT 10.0、微软的Windows NT 10.0、微软的Windows NT 10.0、微软的Windows NT 10.0、微软的Windows NT 10.0。浏览器/106.0.0.0浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器
微软微软公司的Mozilla/5.0(Windows NT 10.0; Windows NT 10.0;微软公司的网页浏览器/106.0.0.0浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器/浏览器
在对**/login**的重定向查询中,可以注意到入口试图将我重定向到默认的后端,而不是我的grafana服务。
我试过使用nginx的注解rewrite-target
、use-regex
和root-app
,但没有任何结果。
目标是,如果我需要进行身份验证,则让my.domain.com/grafana
将我重定向到my.domain.com/grafana/login
,然后重定向到my.domain.com/grafana/whatever/path?foo=bar
。
我做错了什么?
1条答案
按热度按时间nx7onnlm1#
我现在有确切的问题。如果它与你有这样的URL的确定:
grafana.yourip.com
而不是yourip.com/grafana
,您可以将其添加到values.yaml
(仅,不需要更改任何其他内容):如果我会找到解决方案的网址为
/grafana
,我会张贴它。