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


9

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

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

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

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

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

답변:


6

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

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

다음을 추가하십시오.

  options single-request

/etc/resolv.conf로

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


답변 주셔서 감사합니다. 이것은 구성 파일에서 호스트 이름을 엉망으로 만드는 오류였습니다. 죄송합니다. 그러나 귀하의 답변은 실제로 어쨌든 실제로 유용하므로 DNS 문제를 유발할 수 있으므로 올바른 것으로 표시합니다 (요청으로 폭발).
Michael Neale

2
나도 같은 문제가있다-이것을 고치기 위해 설정 파일에서 정확히 무엇을 했는가 (사전 감사)
Zabs

이제 확인 된 IP 주소를 캐시에 보관해야하는 기간을 정의하는 value=30s옵션을에 추가 할 수 있습니다 . resolverresolver
Alexis Wilke
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.