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

842
Vistas
connect () falló (113: el host no se puede alcanzar) al conectarse a nginx ascendente para aws

Sé que esta pregunta se hace varias veces y no está relacionada con aws.

 2020/07/29 10:23:17 [error] 6#6: *37749 connect() failed (113: Host is unreachable) while connecting to upstream, client:

Me enfrento a este problema mientras implementaba nginx en la nube de aws.

configuración de ubicación

 location /test { proxy_pass http://test-service; proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }

Sección aguas arriba como a continuación

 upstream test-service { server test-service.internal:38102; keepalive 10; }

Aquí test-service.internal es mi entrada de zona alojada de route53 y apunta a algún internal application load balancer de aws.

Cuando implemento/reinicio el servidor nginx, funciona bien, pero después de unos días (alrededor de dos o tres días) se bloqueará solo en el pase de proxy. Cuando cargo contenido html, funciona perfectamente, pero la llamada de pase de proxy se atasca.

¿Alguna solución sería útil?

Gracias.

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

0

Después de una larga depuración, descubrimos que nginx almacenará en caché test-service.internal internos. Y aws cambiará los ips del equilibrador de carga interno.

Por lo tanto, las direcciones IP en caché de nginx ya no existen. por lo que tenemos que proporcionar nuevos ips.

Solución:

nginx ha proporcionado una directiva de resolver

 location /test { resolver 10.0.0.2 127.0.0.1 valid=30s; set $backend_servers test-service.internal; proxy_pass http://$backend_servers:38102; #proxy_pass http://test-service; proxy_set_header HOST $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Connection ""; }

Hemos cambiado dos cosas.

  1. Resolución añadida.

  2. Eliminado aguas arriba (el resolvedor no es compatible con nginx. nginx-plus es compatible con upstream con resolvedor)

     resolver 10.0.0.2 127.0.0.1 valid=30s; set $backend_servers test-service.internal; proxy_pass http://$backend_servers:38102;

Ahora estamos usando aws dns server 10.0.0.2 para resolver test-service.internal después de cada 30 segundos

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