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

2.2K
Vistas
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 Respuestas
Responde la pregunta

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 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