Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

635
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!