web-dev-qa-db-ja.com

nginxレゾルバー-dns

非常に初心者の質問を許してください。

Nginxの 'resolver'パラメーターとその仕組みを理解するのに問題があります。ドキュメントを読み、チュートリアルと投稿を検索し(リゾルバー、nginx、dnsなどのキーワードを使用)、リゾルバーの適用方法がまだわかりません。

http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver

"アップストリームサーバーの名前をアドレスに解決するために使用されるネームサーバーを構成します。.."

  • この定義では、単にネームサーバーの仕事をしているようです。 resolver ns1.myhost.com ns2.myhost.com;しかし、例は内部/プライベートIPアドレスを指しています。

"アドレスは、ドメイン名またはIPアドレス、およびオプションのポートとして指定できます。.."

  • これは、私がresolver example.com www.example.com;(またはresolver 12.34.56.78;)しかし、ドキュメントにはそのような例は見当たりません。

実用的な例として、純粋に仮説的に:)-いくつかのサーバーブロックを備えた単純なWebサーバーを構築しているとしましょう。

「リゾルバ」をサーバー自体のIPに設定しますか?または、サーバーのLANの内部IPですか?ドキュメントは内部IP(127.x.x.xまたは10.x.x.x)を示唆しているようですが、そのIPを設定/決定する方法は?

7
Geekomancer

解決とは、外部URLを解決する必要があるときに、nginxが参照するDNSサーバーを意味します。以下のような設定がある場合

location / {
    proxy_pass http://www.example.com/abc/def; 
}

現在、デフォルトでnginxはホストからリゾルバーを選択します/etc/resolv.confそして、それはあなたが必要とするものではないかもしれません。この場合にのみGoogle DNSリゾルバを使用したいかもしれません。次に、nginx configを以下に更新します

location / {
    resolver 8.8.8.8;
    proxy_pass http://www.example.com/abc/def; 
}

ローカルネットワーク内でルーティングするためにローカルDNSリゾルバーを使用している場合、以下のようなものを使用できます

location / {
    resolver 192.168.11.10;
    proxy_pass http://machineabc/abc/def; 
}
6
Tarun Lalwani

「Resolver」パラメーターは、proxy_passで渡されたURLのIPを解決するためにnginxが使用する必要があるDNSサーバーの場所を定義します。

Tarunが説明したように、デフォルトでは、nginxはホスト/etc/resolv.confからリゾルバーを選択し、解決されるとIPをキャッシュします。リゾルバーは、主に次の2つの場合に使用されます。
1。ネットワークに存在するIPを解決するためのプライベートネットワークのいずれか。
2。または、proxy_passまたはアップストリームの場所のIPが頻繁に変更され、nginxのキャッシュIPに依存できない場所で使用されます。

指定した例では、リゾルバーは、場所を解決できるDNSサーバーのIPになります。これは次のいずれかです。

1)127.0.0.1:Webサーバー自体がDNSサーバーである場合、このためには、このサーバーのポート53(デフォルト)でDNSサーバーをセットアップする必要があります。

2)x.x.x.x:URLがパブリックにアクセス可能な場合、プライベートネットワークまたはパブリックDNSサーバーでホストされているDNSサーバーのIP。 8.8.8.8(GoogleのパブリックDNSサーバー)を使用できます。

3)10.x.x.xを指定しました:AWSドキュメントを参照していると仮定します。そうでない場合、一般に、10.x.x.xはDNSサーバーIPである必要があります。AWSの場合は10.0.0.2です。 AWSはVPCのいくつかのIPを予約し、2番目のIP x.x.x.2はDNSサーバー用に予約されています。 VPCが10.0.0.0/16でない場合、このIPはそれに応じて変更されることに注意してください。例:VPCが10.192.0.0/16である場合、リゾルバーとして10.192.0.2を使用します。

上記については https://docs.aws.Amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html を参照してください

https://www.jethrocarr.com/2013/11/02/nginx-reverse-proxies-and-dns-resolution/

1