Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.3K
Vistas
Cómo redirigir correctamente usando nginx-ingress en Kubernetes

Soy nuevo en kubernetes y nginx, y tengo problemas para entender cómo implementar Ingress (nginx-ingress) para mi caso de uso particular.

Quiero exponer la herramienta de administración pgadmin PostgreSQL de mi clúster.

Tengo otras aplicaciones expuestas a través de nginx-ingress desde mi clúster y me gusta que cada una cuelgue de su propio subdirectorio, por ejemplo:

  • myserver.com/compras/index.html
  • myserver.com/sales/index.html

Tengo un problema al hacer esto con pgadmin (aunque el problema sin duda se aplicaría igualmente a otras aplicaciones que se comportan de la misma manera)

Configuré una regla de ingreso para capturar y enrutar en consecuencia:

 annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/rewrite-target: /$2 rules: - http: paths: - path: /pgadmin4(/|$)(.*)

hace el enrutamiento y se golpea el backend.

Sin embargo, cuando pgadmin realiza una redirección, pierdo pgadmin/ de la URL de redirección, es decir

  • Envío un GET a myserver.com/pgadmin
  • Recibo un redireccionamiento 302 a myserver.com/login

mientras que quiero redirigir a:

  • myserver.com/ pgadmin /login

¿Qué piezas me faltan para lograr esto? Parece que debería ser simple.

Gracias

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Vale la pena mencionar que exponer muchos servicios diferentes usando el mismo nombre de dominio puede no ser la mejor idea en términos de seguridad. Muchos mecanismos de seguridad web se basan en el nombre de dominio para determinar qué es confiable y qué no. Por lo tanto, si se infringe uno de sus contenedores, otros servicios que comparten el mismo nombre de dominio podrían verse afectados.

De todos modos, el problema es con pgadmin. No es consciente de que se está sirviendo desde myserver.com/pgadmin/ (otra razón por la que tener varios servicios usando el mismo nombre de dominio no es la mejor idea), por lo que envía las redirecciones incorrectas.

Afortunadamente, la documentación de pgadmin ofrece una solución:

Si desea alojar pgAdmin en un subdirectorio en lugar de en la raíz del servidor, debe especificar la ubicación y configurar el encabezado X-Script-Name que le indica al contenedor pgAdmin cómo reescribir las rutas:

 server { listen 80; server_name _; location /pgadmin4/ { proxy_set_header X-Script-Name /pgadmin4; proxy_set_header Host $host; proxy_pass http://localhost:5050/; proxy_redirect off; } }

Así que parece que solo tiene que asegurarse de que las llamadas a pgadmin se envíen con el encabezado X-Script-Name /pgadmin4 , que es algo que el controlador de entrada nginx sabe cómo hacer .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda