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

549
Vistas
Heroku: frontend y backend separados con Nginx en el mismo dominio

Tengo una aplicación con dos repositorios de github, uno para reaccionar y otro para la aplicación Rails. El requisito es que todas las rutas deben ir al servidor de Rails, excepto las rutas que comienzan con /catalog deben ir a la aplicación React. El servidor de la aplicación Rails se comunicará con React Server internamente. SSL está configurado en el nivel de Nginx.

He creado 3 aplicaciones diferentes en heroku:

  • aplicación de servidor de rieles
  • Aplicación de servidor React
  • Servidor web (Nginx)

La configuración de mi servidor nginx se ve así:

 upstream rails { server $HEROKU_APP_rails_URL; } upstream react { server $HEROKU_APP_react_URL; } server { listen $PORT; server_name *.xyz.com; # large_client_header_buffers 4 32k; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://rails; } location /catalog { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://react; } }

Con la configuración anterior, recibo un error HTTP 400 en Nginx y no puedo redirigir la solicitud. Por favor, hágame saber qué estoy haciendo mal.

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

0

Finalmente logré resolver este problema. Mi configuración de nginx parece

 upstream upstream_app_a { server app_a.herokuapp.com:443; } upstream upstream_app_b { server app_b.herokuapp.com:443; } server { listen $PORT; location / { set $upstream upstream_app_a; proxy_pass https://$upstream; proxy_ssl_name app_a.herokuapp.com; proxy_set_header x-forwarded-host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host app_a.herokuapp.com; } location /static { set $upstream upstream_app_b; proxy_pass https://$upstream/static; proxy_set_header Host app_b.herokuapp.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /product_catalog { set $upstream upstream_app_b; proxy_pass https://$upstream; proxy_ssl_name app_b.herokuapp.com; proxy_set_header x-forwarded-host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host app_b.herokuapp.com; } }

Asegúrese de establecer el valor correcto para el encabezado

 proxy_set_header Host app_a.herokuapp.com

Logramos resolver este problema consultando el artículo

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