Kubernetes Nginx入口“;“重写目标”;注释未重写目标

Kubernetes Nginx入口“;“重写目标”;注释未重写目标,kubernetes,kubernetes-ingress,nginx-ingress,Kubernetes,Kubernetes Ingress,Nginx Ingress,我的ingress资源上的“nginx.ingres.kubernetes.io/rewrite target”注释似乎没有任何作用。当我将path:/helloworld更改为path://时,一切正常。我尝试过将注释的值放在双引号中,并将注释的顺序更改为无效。我错过了什么?看起来这应该是相当简单的 apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: helloworld-ingress annotat

我的ingress资源上的“nginx.ingres.kubernetes.io/rewrite target”注释似乎没有任何作用。当我将
path:/helloworld
更改为
path://
时,一切正常。我尝试过将注释的值放在双引号中,并将注释的顺序更改为无效。我错过了什么?看起来这应该是相当简单的

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: helloworld-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: <NGINX_CONTROLLER_EXTERNAL_IP>.xip.io
    http:
      paths:
      - backend:
          serviceName: helloworld-svc
          servicePort: 80
        path: /helloworld
apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 名称:helloworld ingress 注释: kubernetes.io/ingres.class:“nginx” nginx.ingres.kubernetes.io/ssl-redirect:“false” nginx.ingres.kubernetes.io/rewrite-target:/ 规格: 规则: -主机:.xip.io http: 路径: -后端: 服务名称:helloworld svc 服务端口:80 路径:/helloworld
如果要在
/
上下文中重写,则需要使用app root

如果要在
/
上下文中重写,则需要使用app root

我解决了我的问题。它与“重写目标”注释本身无关。我试图将它指向一个提供React.js应用程序的Nginx服务器。我需要在React应用程序中设置基本URL,并将构建复制到Dockerfile中
/usr/share/nginx/html
的相应子目录中。在采取这些步骤之后,就不再需要使用“重写目标”。我用React和Nginx发布了一个详细的设置,并回答了它。

我解决了我的问题。它与“重写目标”注释本身无关。我试图将它指向一个提供React.js应用程序的Nginx服务器。我需要在React应用程序中设置基本URL,并将构建复制到Dockerfile中
/usr/share/nginx/html
的相应子目录中。在采取这些步骤之后,就不再需要使用“重写目标”。我用React和Nginx发布了一个详细的设置,并回答了这个问题。

那么您是否可以访问后端服务,但路径仍然是
/helloworld
?我主要看到了regex使用的重写目标。即
nginx.ingres.kubernetes.io/rewrite-target:/$2
path:/helloworld(/|$)(.*)
。通过这种方式,您可以重写,以便删除
/helloworld
,但保留路径的其余部分。但是,如果您总是想重写到根路径,我认为它应该像您所做的那样工作..:心想:@christianfolli你是对的。它应该会起作用,而且在大多数情况下都会起作用。原来问题也与路径指向的服务有关。它是一个Nginx服务器,提供React.js应用程序。我添加了一个关于这个问题的更详细帖子的链接。无论如何,谢谢你的努力。不用担心:-)是的,因为React.js在客户端工作,这种重写不会有任何区别。那么,你是否使用后端服务,但路径仍然是
/helloworld
?我主要看到了regex使用的重写目标。即
nginx.ingres.kubernetes.io/rewrite-target:/$2
path:/helloworld(/|$)(.*)
。通过这种方式,您可以重写,以便删除
/helloworld
,但保留路径的其余部分。但是,如果您总是想重写到根路径,我认为它应该像您所做的那样工作..:心想:@christianfolli你是对的。它应该会起作用,而且在大多数情况下都会起作用。原来问题也与路径指向的服务有关。它是一个Nginx服务器,提供React.js应用程序。我添加了一个关于这个问题的更详细帖子的链接。谢谢你的努力。不用担心:-)是的,因为React.js在客户端工作,这种重写不会有任何影响。谢谢你的帮助。该问题与“重写目标”注释无关。我添加了一个答案,其中有一个更详细的帖子链接,以防有人遇到同样的问题。谢谢你的帮助。该问题与“重写目标”注释无关。我添加了一个答案,上面有一个更详细的帖子链接,以防有人遇到同样的问题。