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

293
Views
Proxy inverso con nombres de host con composición de Docker

Tengo 2 API y un front-end que funcionan en contenedores docker. Todos se pueden crear a través de docker-compose y tengo un proxy inverso Nginx que debería enrutarlos usando sus nombres de host, es decir api-1.my-project.localhost . De hecho, he tenido este proceso funcionando, pero de vez en cuando, como esta mañana, obtengo el "Dominio inexistente" o "No podemos encontrar este sitio" cuando lo visito usando estos nombres de host.

No creo que docker-compose.yml sea tan importante, pero lo he incluido aquí:

 version: "3.2" services: api-1: # Runs on port 5000 image: my-companies-docker-registry.api-1 api-2: # Runs on port 5000 image: my-companies-docker-registry.api-2 main-front-end: # Runs on port 3000 image: my-companies-docker-registry.main-front-end my-project: image: nginx depends_on: - api-1 - api-2 - main-front-end ports: - 80:80 volumes: - type: bind read_only: true source: ./nginx target: /etc/nginx

Mi configuración de nginx se ve así:

 events {} http { # Api 1 upstream api-1{ server api-1:5000; } server { listen 80; server_name api-1.my-project.localhost; location / { proxy_pass http://api-1; } } # Api 2 upstream api-2 { server api-2:5000; } server { listen 80; server_name api-2.my-project.localhost; location / { proxy_pass http://api-2; } } # Main Front end upstream main-front-end { server main-front-end:3000; } server { listen 80 default_server deferred; server_name my-project.localhost www.my-project.localhost; location / { proxy_pass http://main-front-end; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } } }

El objetivo de esto es que pueda acceder al sitio usando http://my-project.localhost y las API usando api-1.my-project.localhost y api-2.my-project.localhost . Como listen 80 default_server deferred al visitar http://localhost , puedo presionar nginx, lo que me permite ver mi sitio front-end. Entonces docker-compose ha enlazado los puertos correctamente.

En algún momento en el pasado, pude acceder a los sitios usando el sufijo my-project.localhost pero ahora ya no es así. Este sitio sugiere agregar una entrada de host para cada sitio, no recuerdo haber hecho esto antes, ya que hay muchos sitios, esto habría tomado un tiempo, pero es posible que lo haya hecho y ahora se hayan eliminado. También soy consciente de que Nginx no es Docker, por lo que no tengo idea de cómo esos nombres de host se habrían extraído y agregado al proceso de resolución de host de mis máquinas.

¿Cómo podría haber funcionado esto antes y ahora no? ¿Y cómo puedo hacer que mi configuración funcione sin hacer cambios manuales en el archivo del host?

over 4 years ago · Santiago Trujillo
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!