非常に初心者の質問を許してください。
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を設定/決定する方法は?
解決とは、外部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;
}
「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/