Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

839
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda