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

2.2K
Views
Docker Nginx: host no encontrado en upstream

Tengo mi aplicación docker ejecutándose en la instancia aws EC2, y actualmente estoy tratando de asignar la aplicación a la dirección IP externa usando Nginx. Aquí hay una instantánea de los contenedores que tengo en ejecución:

ingrese la descripción de la imagen aquí

Mi aplicación de prueba es una aplicación bastante simple que muestra un sitio web html estático. Y lo implementé usando el siguiente comando:

docker run -d --name=test-app test-app

El proxy nginx tiene el siguiente proxy.conf

 server { listen 80; location / { proxy_pass http://test-app; } }

Aquí está el Dockerfile para el proxy nginx:

 FROM nginx:alpine RUN rm /etc/nginx/conf.d/* COPY proxy.conf /etc/nginx/conf.d/

nginx-proxy se ejecuta con el siguiente comando: docker run -d -p 80:80 --name=nginx-proxy nginx-proxy

Sin embargo, el contenedor nginx nunca se ejecuta, y aquí aparece el registro de errores

 2020/03/27 15:55:19 [emerg] 1#1: host not found in upstream "test-app" in /etc/nginx/conf.d/proxy.conf:5 nginx: [emerg] host not found in upstream "test-app" in /etc/nginx/conf.d/proxy.conf:5
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Mientras sus dos contenedores se están ejecutando y ha expuesto correctamente los puertos necesarios para el contenedor NGINX. No ha expuesto ningún puerto para el contenedor test-app . El contenedor NGINX no tiene forma de comunicarse con él. Exponer los puertos directamente con la docker run probablemente anularía el punto de usar un proxy inverso en su situación. Entonces, en cambio, lo que debe hacer en esta situación es crear una red para ambos contenedores Docker y luego agregarlos. Entonces podrán comunicarse entre sí a través de un puente. Por ejemplo:

 docker network create example docker run -d --network=example --name=test-app test-app docker run -d -p 80:80 --network=example --name=nginx-proxy nginx-proxy

Ahora que tiene ambos pods en la misma red, Docker habilitará el descubrimiento de servicios basados en DNS entre ellos por nombre de contenedor y podrá resolverlos entre sí. Puede probar la conectividad así: docker exec -it nginx-proxy ping test-app . Bueno, eso siempre que ping esté instalado en ese contenedor Docker.

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!