Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

129
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda