Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 另一个nginx入口重写目标问题_Node.js_Nginx_Kubernetes_Kubernetes Ingress_Nginx Ingress - Fatal编程技术网

Node.js 另一个nginx入口重写目标问题

Node.js 另一个nginx入口重写目标问题,node.js,nginx,kubernetes,kubernetes-ingress,nginx-ingress,Node.js,Nginx,Kubernetes,Kubernetes Ingress,Nginx Ingress,我使用kubenetes nginx ingress controller提供一个服务和一个入口资源。我希望我的url的/student路径转到应用程序的根目录,并匹配student后面的任何其他url段 例如:应匹配我的应用程序的/ver路径 但是,我的入口总是以/studenturl路径作为其他url段的前缀命中应用程序。如果我调用,我的应用程序将被相同的url(student/ver)命中 我的入口: apiVersion: extensions/v1beta1 kind: Ingress

我使用kubenetes nginx ingress controller提供一个服务和一个入口资源。我希望我的url的
/student
路径转到应用程序的根目录,并匹配
student
后面的任何其他url段

例如:应匹配我的应用程序的
/ver
路径

但是,我的入口总是以
/student
url路径作为其他url段的前缀命中应用程序。如果我调用,我的应用程序将被相同的url(
student/ver
)命中

我的入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
  name: ingress-resource
spec:
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: lesson-streaming
          servicePort: 80
        path: /student
我花了好几天的时间做这个,但一次都没有成功


编辑:

入口更改为以下内容-不是我的请求,而是http 404

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/rewrite-target: /$2
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
  name: ingress-resource
  namespace: default
spec:
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: lesson-streaming
          servicePort: 80
        path: /student(/|$)(.*)
您可以按照正确使用
rewrite target
注释,并保留正确的键
nginx.ingres.kubernetes.io/rewrite target

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: rewrite
  namespace: default
spec:
  rules:
  - host: rewrite.bar.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /something(/|$)(.*)
您可以按照正确使用
rewrite target
注释,并保留正确的键
nginx.ingres.kubernetes.io/rewrite target

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: rewrite
  namespace: default
spec:
  rules:
  - host: rewrite.bar.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /something(/|$)(.*)

官方的例子正是你所需要的。@Charlie你成功做到了吗?@kitt对不起,没有work@Charlie您的注释密钥不正确,应该是
nginx.ingres.kubernetes.io/rewrite target
@kitt,它工作得很好。请回答这个问题。我会接受的。官方的例子正是你所需要的。@Charlie你成功做到了吗?@kitt对不起,没有work@Charlie您的注释密钥不正确,应该是
nginx.ingres.kubernetes.io/rewrite target
@kitt,它工作得很好。请回答这个问题。我会接受的。