Nginx では、エラーや警告を回避するために、resolver ディレクティブは機械的に何を行っていますか?

Nginx では、エラーや警告を回避するために、resolver ディレクティブは機械的に何を行っていますか?

環境:Node.js の

私は読んだリゾルバに関する Nginx ドキュメントDNS に使用されることは理解しており、設定に含めています。ただし、それが何をするのか、いつ、なぜ必要なのかは完全には理解していません。

以下の簡略化された構成では、nginx および node.js サーバーをオンにしてブラウザでページを要求すると、すべてが期待どおりに動作し、警告やエラーはスローされません。使用している IP アドレスは、resolverGoogle のパブリック DNS サーバーです。

http {

    resolver 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844];

    server {

        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name example.com;

        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

        root /srv/example/views/public;

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

        location / {
            proxy_pass http://127.0.0.1:8080;
        }

    }

}

ただし、resolver 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844];サーバーの起動を削除してページを要求すると、error.log に警告が表示されます。同時に、ブラウザではすべて正常に動作し、クライアントにエラーや警告は送信されません。

2020/12/11 20:04:24 [警告] 1191#1191: 証明書ステータスを要求中に r3.o.lencr.org を解決するためのリゾルバが定義されていません。応答者: r3.o.lencr.org、証明書: "/etc/letsencrypt/live/example.com/fullchain.pem"

Google の DNS サーバーへの参照を値として保持して警告を回避するのは簡単ですresolverが、何が起こっているのかよくわかりません。このディレクティブが何をしているのかわからないため、Google の DNS サーバーが正しい選択であるかどうかはよくわかりません。ディレクティブresolverも使用している場合のみ必要だと思いますproxy_passが、その点についてはよくわかりません。

質問:リゾルバは何をしていて、いつ呼び出され、いつ呼び出されないのでしょうか? DNS を実行していることは理解していますが、いつ、なぜ実行されるのかはわかりません。

答え1

を要求しましたがssl_stapling、TLS 証明書に記載されている OCSP レスポンダへの接続が必要です。resolver名前から IP アドレスを取得するには が必要です。

関連情報