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

133
Vistas
Enrutamiento por ruta en aplicaciones web frontales usando nginx o kukbernetes ingress

Supongamos que tengo un nombre de dominio xxx.yyy.com, pero no tengo ningún nombre de subdominio (*.xxx.yyy.com).

Entonces tengo que enrutar cada solicitud HTTP a su servicio correspondiente por path . Por ejemplo, enrutar xxx.yyy.com/app1/ al servicio app1 y xxx.yyy.com/app2/ al servicio app2 .

Configuro mis recursos de kubernestes de la siguiente manera:

 apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / kubernetes.io/ingress.class: "nginx" spec: rules: - host: xxx.yyy.com http: paths: - pathType: Prefix path: "/app1" backend: service: name: app1 port: number: 8000 - pathType: Prefix path: "/app2" backend: service: name: app2 port: number: 8000 --- apiVersion: v1 kind: Service metadata: name: app1 spec: selector: app: app1 ports: - protocol: TCP port: 8000 --- apiVersion: v1 kind: Service metadata: name: app2 spec: selector: app: app2 ports: - protocol: TCP port: 8000

Esto funciona en la mayoría de los casos, excepto en aplicaciones web frontales.

En el código HTML y javascript de una aplicación web frontal, referimos sus activos (imágenes, API HTTP) en el servidor back-end mediante la ruta raíz ("/"), como si estuviera implementado en su propio servidor.

Por ejemplo, en el código javascript de app1 , llamamos a fetch('/api/getUsers') en lugar de fetch('/app1/api/getUsers') , por lo que el ingreso no pudo enrutar /api/getUsers al servicio app1 .

Sé que se puede resolver fácilmente enrutando la solicitud por host no por path . Pero no tengo permiso para crear subdominios.

Entonces, ¿cómo se puede resolver este escenario de aplicaciones web frontales mediante el enrutamiento por ingreso de path ?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Cuando la aplicación web está disponible para el navegador bajo una determinada ruta, las solicitudes de front-end deben apuntar a esa ruta. Puedes lograr esto por

  • usando solo nombres de rutas relativas como api/guestUsers en lugar de /api/guestUsers
  • o prefijando cada URL de consulta con esa ruta, como /app1/img/logo.png .

La segunda forma es compatible, por ejemplo, con:

  • Paquete web: publicPath: "/app1"
  • Reaccionar enrutador: <BrowserRouter basename="/app1"/>
  • Angular: <base href="/app1"/>

Esta configuración podría completarse dinámicamente con una variable de servidor o inclusoestablecerse automáticamente en la ubicación del punto de entrada.

about 4 years ago · Juan Pablo Isaza Denunciar

0

En su aplicación, use window.location.href y analice la primera parte de la URL y utilícela como base para sus solicitudes.

 const url = new URL(window.location.href); const appName = url.pathname.split('/').length > 2 ? url.pathname.split('/')[1] : ""; const baseApiUrl = new URL(appName, url).toString(); fetch(baseApiUrl + '/api/getUsers') .then((res) = {}) .catch((error) => { console.log(error)})
about 4 years ago · Juan Pablo Isaza 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