私はチームと協力してWebサービスとクライアントを開発しています。もちろん、私たち一人一人が自分のマシンで作業しています。物事をシンプルで一貫性のあるものにするために、コードで同様のドメインを使用し、/etc/hosts
を更新してそれらのドメインをローカルホストに解決します。
Curlの--resolve
フラグを見つけました 遅延を解決します ですが、127.0.0.1
を使用して、同じ効果を得るのに必要なヘッダーを定義することもできます。
フラグ付き(および更新された/etc/hosts
ファイル)
# /etc/hosts
...
127.0.0.1 mp-api.example.local
コマンド
curl -k -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}\\n \
--resolve mp-api.example.local:8094:127.0.0.1 \
-H 'Host: mp-api.example.local:8094' \
'https://mp-api.example.local:8094/api/categories/tree.json'
127.0.0.1で
curl -k -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}\\n \
-H 'Host: mp-api.example.local:8094' \
'https://127.0.0.1:8094/api/categories/tree.json'
curl
やwget
などのツールのDNS解決が遅れる理由は何ですか?そして、その遅延をトラブルシューティングするいくつかの効果的な方法は何ですか?
/etc/nsswitch.confファイルを確認してください
名前からIDへの変換方法の構成があります。ホスト名の行の1つ:
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname mymachines
そもそも「ファイル」を確認してください。
UPD。
Mac OS X Yosemiteでローカルホスト名をカールする
curlが名前の解決に責任を持ち、ipv6を好むように見えます
--ipv4キーを追加するか、ipv6をホストに追加してみてください