【问题标题】:Nginx ingress controller doesn't keep url over redirectNginx 入口控制器不会通过重定向保留 url
【发布时间】:2019-03-06 19:10:28
【问题描述】:

我正在尝试设置一个 nginx 入口控制器;这是入口的yaml:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-rules
  namespace: default
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/force-ssl-redirect: "false"

spec:
  rules:
  - host: 
    http:
      paths:
      - path: /discover-service
        backend:
          serviceName: discover-service
          servicePort: discover-port

当我点击http://IP/discover-service 时,它会显示一个没有 CSS 和 JS 的 HTML。如我所见,它们在http://IP/eureka/css/file.css 下而不是http://IP/discover-service/css/file.css 下查看。

在这种情况下如何保留原始网址?

更新 #1

现在我可以通过创建两个入口来提供静态文件,例如:

ingress-rules-discover-root.yaml

[..]
metadata:
  name: ingress-rules-discover-root

  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    [...]

spec:
  rules:
  - host: 
    http:
      paths:

      - path: /discover-service
        backend:
          serviceName: discover-service
          servicePort: discover-port

还有一个

[...]
metadata:
  name: ingress-rules-discover-path
  namespace: default
  annotations:
    kubernetes.io/ingress.class: nginx
    [...]

spec:
  rules:
  - host: 
    http:
      paths:
      - path: /eureka
        backend:
          serviceName: discover-service
          servicePort: discover-port

【问题讨论】:

    标签: nginx kubernetes nginx-reverse-proxy kubernetes-ingress


    【解决方案1】:

    我相信在这种情况下您需要删除注释:

    nginx.ingress.kubernetes.io/rewrite-target: /
    

    此注解使入口将http://IP/discover-service/css/file.css 重写为http://IP/eureka/css/file.css

    【讨论】:

    • 如果我删除该注释,我会从IP/discover-service 的服务(在本例中为 Spring Boot 应用程序)获得 404,而不是纯 html。
    • 所以不清楚你的静态文件是否在http://IP/eureka/css下提供?
    • 我更新了这个问题。现在基本上它正在工作,但我不知道我是否可以通过另一种方式实现同​​样的目标。这似乎太混乱了。我应该像上面那样为每个案例创建许多入口吗?
    • 是的,应该可以。一个会重写,另一个不会
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-09
    • 2017-09-09
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    相关资源
    最近更新 更多