Emitir con el enrutamiento de ingreso de Kubernetes a las aplicaciones Nextjs
Así que tengo un caso de uso interesante. Estoy ejecutando múltiples microservicios en mi clúster de Kubernetes. Mis aplicaciones usan NextJS, que realiza llamadas internas a las siguientes rutas.
Mi problema surgió del hecho de que necesitaba una forma de diferenciar entre los servicios y sus solicitudes en los archivos _next. Así que implementé la característica assetPrefix de NextJS que funciona perfectamente en el desarrollo, agregando mi prefijo delante de _next para que las solicitudes se vean como.../${PREFIX}/_next/...
. De esa manera, podría configurar una entrada y enrutar archivos basados en el prefijo al servicio apropiado en mi clúster. Configuré un controlador Kubernetes Ingress siguiendo esta guía:https: //akomljen.com/kubernetes-nginx-ingress-controller
Mi configuración de ingreso es:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: dev-ingress
spec:
rules:
- host: baseurl.com
http:
paths:
- path: /auth
backend:
serviceName: auth-svc
servicePort: 80
- path: /static/auth
backend:
serviceName: auth-svc
servicePort: 80
- path: /login
backend:
serviceName: auth-svc
servicePort: 80
- path: /settings
backend:
serviceName: auth-svc
servicePort: 80
- path: /artwork
backend:
serviceName: artwork-svc
servicePort: 80
- path: /static/artwork
backend:
serviceName: artwork-svc
servicePort: 80
Así que aquí está el problema. Ahora que todo está configurado, implementado correctamente y la entrada se está ejecutando siguiendo la guía anterior y utilizando las reglas anteriores, mis servicios están tratando de hacer solicitudes a.../_next/...
en lugar de.../${PREFIX}/_next/...
para que no puedan encontrar los archivos adecuados y nada funciona. Parece que no puedo entender lo que está pasando. ¿Alguien tiene alguna idea? ¡Gracias por adelantado