Nginx/OpenResty慎重配置8.8 DNS serverとして
目次ディレクトリ 問題 解析 余談 問題
NFingx reolverの構成:
分析
余談をする
すべてのイントラネットのIPはイントラネットのドメイン名でしかマッピングできないですか?AWSのMySQLクラスタのドメイン名は、外部ネットワークDNS server(e.g.
NFingx reolverの構成:
resolver 127.0.0.1 8.8.8.8;
プロジェクトの中で2か所はドメイン名を使って、1か所は外网CDNドメイン名で、1か所はMySQLクラスタドメイン名です。配置が終わったらテストの両方が正常に解析できますが、しばらく実行したらdb.example.com could not be resolved (3: Host not found)
エラーが発生します。分析
dig
を用いて、DNS serverの2つのドメイン名に対する解析状況をテストする。dig @127.0.0.1 www.baidu.com
dig @127.0.0.1 db.example.com
dig @8.8.8.8 www.baidu.com
dig @8.8.8.8 db.example.com
127.0.0.1
は、ANSWER SECTION
を得ることができる。;; ANSWER SECTION:
www.baidu.com. 8 IN CNAME www.a.shifen.com.
www.a.shifen.com. 91 IN A 103.235.46.39
しかし、dig @8.8.8.8 db.example.com
はAUTHORITY SECTION
しか得られない。;; AUTHORITY SECTION:
. 86398 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2017071900 1800 900 604800 86400
このように、理由ははっきりしています。Ngixは複数のDNS serverをポーリングして、テスト時にちょうど127.0.0.1
に会ったので、大丈夫です。その後、8.8.8.8
にポーリングしたら問題が発生しました。余談をする
すべてのイントラネットのIPはイントラネットのドメイン名でしかマッピングできないですか?AWSのMySQLクラスタのドメイン名は、外部ネットワークDNS server(e.g.
8.8.8.8
)で解析できますが、マッピングされたIPは確かにイントラネットIPです。