Tengo un servicio y un solo recurso de ingreso con el controlador de ingreso kubenetes nginx. Quiero que la ruta /student de mi url vaya a la raíz de la aplicación y coincida con cualquier otro segmento de url que siga al student .
Por ejemplo: http://example.com/student/ver debería coincidir con la ruta /ver de mi aplicación.
Sin embargo, mi ingreso siempre llegaba a la aplicación con la ruta de URL /student como prefijo de los otros segmentos de URL. Si llamo a http://example.com/student/ver , mi aplicación recibe la misma URL ( student/ver ).
Mi entrada:
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: /studentPasé días con esto y no tuve éxito una vez.
Editar:
El ingreso se cambia a lo siguiente: mis solicitudes no dicen 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(/|$)(.*)Puede seguir el enlace para usar la anotación rewrite-target correctamente y conservar la clave correcta nginx.ingress.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(/|$)(.*)