当前位置: 首页 > 知识库问答 >
问题:

kubernetes和nginx入口路由路径

张光辉
2023-03-14

我有以下入口设置:

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未找到。

根据日志,可以看到< code>grafana窗格被查询命中:

logger = context traceID = 0000000000000000000000000000 userId = 0 orgId = 0 uname = t = 2022-10-13t 16:19:57.989170173 z level = info msg = "请求完成" method = GET path =/grafana/status = 302 remote _ addr = x . x . x . x time _ ms = 0 duration = 718。

但后来什么都没有。

在入口日志下方:

x.x.x.x - - [13/Oct/2022:16:19:57 0000] “GET /grafana HTTP/2.0” 302 29 “-” “Mozilla/5.0 (Windows NT 10.0;赢64;x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36“ 484 0.003 [mynamespace-grafana-80] [] x.x.x.x:3000 29 0.004 302 b236c5c8ad1c0bb006cef4e87a7ba8b2

x . x . x . x---[13/Oct/2022:16:19:58 0000]"获取/登录HTTP/2.0 " 404 548 "-" Mozilla/5.0(Windows NT 10.0;Win64x64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/106 . 0 . 0 . 0 Safari/537.36 " 23 0.000[上游-默认-后端][]127 . 0 . 0 . 1:8181 548 0.000 404 99 e 27 E8 c 68 cdfa 719 c 214 ad 279 c 54063

在重定向到/login的查询中,可以注意到入口试图将我重定向到默认后端,而不是我的grafana服务。

我尝试过使用ngin x的注释rereade-目标use-regexroot-app,但我尝试过的都没有解决。

目标目标是让my.domain.com/grafana将我重定向到my.domain.com/grafana/login,如果我需要进行身份验证,然后my.domain.com/grafana/whatever/path?foo=bar

我到底做错了什么?

共有1个答案

柯鸿振
2023-03-14

我现在有确切的问题。如果您可以拥有这样的 URL:grafana.yourip.com 而不是 yourip.com/grafana 您可以将其添加到 values.yaml(仅,无需更改任何其他内容):

grafana:
  admin:
    user: admin
    password: admin
  ingress:
    pathType: ImplementationSpecific
    enabled: true
    annotations:
      kubernetes.io/ingress.class: nginx
    hostname: grafana.yourip.com

如果我能找到网址为< code>/grafana的解决方案,我会发布出来。

 类似资料:
  • 我看到了一些示例,其中Kubernetes集群安装了ingress控制器,然后ingress类添加了注释和主机,如下所示。 我不确定安装了哪个服务,哪个IP配置了DNS“k8s.privatecoud.com”,以便路由请求?DNS路由“k8s.privatecoud.com”如何将请求路由到Kubernetes集群?kubernetes桥的入口是如何工作的? 此外,可以使用主机规则配置许多服务,

  • 我不能在我的一个路径上设置基本身份验证。我希望有路径由基本auth保护,所有其他路径不需要基本auth。所以我创建了两个指向同一个后端的入口文件: 非授权入口: 认证入口: 所有秘密都设置正确。我错过了什么?我如何才能让它发挥作用?

  • 我的服务器中有此入口。 事实上,当我给ra2打电话的时候,我希望是这样。我的公司。通用域名格式。br/conteudo/health,例如,它触及seo生产部署节点port/health,但它将访问seo生产部署节点port/conteudo/health,并收到404答案。 在我的入口中查看它似乎没有错误。我只是不知道为什么它没有按预期“清理”路径。正常/路径中的请求正在按预期发生。

  • 我正在尝试在我的nginx服务器上设置vue路由器。我遇到的问题是,如果我直接在浏览器中输入url,我的路线就不起作用。 我尝试了vue路由器文档中描述的服务器配置,以及建议的堆栈溢出类似配置。我当前的nginx位置配置如下: 所做的就是将任何路径重定向到我的根组件(path:),而不是。这确实有意义,并且似乎只重定向到索引文件。我如何重定向直接链接的到路由在我的VueJS应用程序? 以下是我的v

  • 有人能帮我走台阶吗...(我在互联网的帮助下尝试了多种方法...不知道我错过了什么?) 注意:根据讨论论坛,我在ingress YAML的部署部分中添加了“hostnetwork:true”来解决“没有主机参数不能工作”,并注释了“type:nodeport”。 更新信息: kubectl描述了更新后的入口路由:在这里,我有ngnix--它工作得很好(我猜ingress和nginx都在相同的命名空