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

636
Vistas
Nginx, Docker y Docker Compose

Estoy tratando de configurar una arquitectura de microservicios para un blog personal.

La idea es tener un contenedor NGINX que sirva un sitio Gatsby estático y redirigir a otros servicios. Por ejemplo, me gustaría tener una aplicación de reacción en /todos y una API para esa aplicación de tareas en /todos_api.

Mi estructura de carpetas actual es así:

  • docker-compose.yml
  • gatsby_blog
    • (contiene una carpeta de compilación)
    • nginx
      • default.conf (esta es mi entrada principal de nginx)
  • portafolio
    • todos
      • todo_cliente
        • nginx
          • default.conf (esto es solo para servir la aplicación de reacción)
      • todo_api

Mi archivo docker-compose se ve así:

 version: "3" services: gatsby: restart: always build: dockerfile: Dockerfile context: ./gatsby_blog ports: - "80:80" todoclient: build: dockerfile: Dockerfile context: ./portfolio/todos/todo_client

Mi archivo nginx principal de Gatsby se ve así:

 upstream todoclient { server todoclient:3000; } server { listen 80; location / { root /usr/share/nginx/html; index index.html index.htm; } location /todos { rewrite /todos/(.*) /$1 break; proxy_pass http://todoclient; } }

y mi configuración de React nginx es así:

 server { listen 3000; location / { root /usr/share/nginx/html; index index.html index.htm; } }

El problema del que estoy bastante seguro es con mis configuraciones de nginx. Cuando voy a localhost me encuentro con la aplicación gatsby, pero si voy a /todos me sale un error de nginx. Puedo ver que la solicitud se pasa correctamente al contenedor todoclient, pero el error devuelto es:

open() "/usr/share/nginx/html/todos" falló (2: No existe tal archivo o directorio

Si alguien puede ver dónde me estoy equivocando con las configuraciones de nginx, realmente lo agradecería. También puedo publicar mis Dockerfiles si es necesario. Gracias

EDITAR

Logré que el proxy funcione ahora, pero el problema es que la aplicación Todos no puede encontrar sus archivos estáticos. Están en el lugar correcto en el contenedor, y el contenedor funciona de forma aislada, por lo que el problema tiene que ver con docker-compose y el proxy nginx.

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

0

Hecho para angular. El archivo nginx debe reemplazar el archivo en /etc/nginx/nginx.conf. Y coloque la carpeta todos, suponiendo que tenga las páginas estáticas, en /usr/share/nginx/html. Puedes probar un servicio a la vez

 http { server { listen 80; server_name localhost; root /usr/share/nginx/html; include /etc/nginx/mime.types; location /todos { alias /usr/share/nginx/html/todos/; absolute_redirect off; rewrite ^(.+)/todos/+$ $1 permanent; rewrite ^(.+)/todos/index.html$ $1 permanent; try_files $uri$args $uri$args/ $uri/ /todos/index.html; } } }
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