OS에서 확인하더라도 nginx가 재로드시 업스트림 이름을 확인하지 못함 이것은 다음과

설정을 다시로드 할 때 (특히 proxy_pass를 위해)-때때로 이것은 다음과 같이 보일 것입니다 : nginx : [emerg] 호스트가 업스트림에 없습니다

그러나 업스트림 서버의 이름은 os (linux)에서 해결됩니다-nginx만이 문제가있는 것 같습니다.

이것은 1.0.10 이전 버전에서는 발생하지 않았기 때문에 최근의 회귀처럼 보입니다.

최근에 이것을 눈치 채신 사람이 있습니까?

검색 할 장소를 좁히려 고합니다.



답변

Nginx는 내부적으로 DNS를 5 분 동안 캐시합니다 (이것이 이후 버전에서 구성 가능한지 확실하지 않음). 아마도 리졸버가 어떤 이유로 실패하면 Nginx 가이 결과를 캐시합니다.

기본적으로 해결 프로그램이 IPv4 및 IPv6 레코드를 병렬로 요청하기 때문에 IPv6이 활성화 된 시스템에서 이것을 보았습니다. 이 문제는 리졸버가 일시적인 DNS 문제를 일으키는 홍수로 볼 수 있습니다. 도메인 이름 확인시 이메일 트래픽이 많은 상자에서이 팝업을 보았습니다.

다음을 추가하십시오.

  options single-request

/etc/resolv.conf로

이로 인해 IPv6 / v4 조회가 순차적으로 수행됩니다.