nginxがOSによって解決されても、リロード時にアップストリーム名を解決できない


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問題を引き起こすでしょうから。
マイケルニール、2012年

2
私は同じ問題を抱えています-これを修正するために設定ファイルで正確に何をしましたか(事前に感謝します)
Zabs

value=30sオプションを追加してresolver、解決されたIPアドレスをresolverのキャッシュに保持する期間を定義できます。
Alexis Wilke
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.