nginx-ingress 控制器重定向,查询参数中带有句点

nginx-ingress 控制器重定向,查询参数中带有句点

我有以下 URL,我想将其重定向到另一个主机名,但如果可能的话,也更改查询参数。

它基本上是更改 prometheus 在 grafana 中工作的 URL。因此 prometheus url 是

https://prom-to-grafana.foobar.com/graph?g0.expr=vector(1)&g0.range_input=1h&g0.tab=0

我需要提取g0.expr它以用于以下

https://grafana.foobar.com/explore?orgId=1&left={"datasource":"AbfTenkVk","queries":[{"expr":"vector(1)"}]}

基本上,vector(1)查询最终以 grafana 的 expr json blob 结束。

我尝试过类似

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: grafana-redirect
  annotations:
    nginx.ingress.kubernetes.io/use-forwarded-headers: "true"
    nginx.ingress.kubernetes.io/server-snippet: |          
        location ~* "^/graph.*" {
          rewrite ^/graph\?g0\.expr=(.*)\&g0.range_input(.*)$ "https://grafana.foobar.com/explore?orgId=1&left={\"datasource\":\"AbfTenkVk\",\"queries\":[{\"expr\":\"$1\"}]}" break;
        }
spec:
  ingressClassName: ingress-nginx
  rules:
    - host: prom-to-grafana.foobar.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: app
                port: 
                  name: api

相关内容