Je travaille avec une équipe pour développer un service Web et un client, chacun de nous travaillant bien sûr sur ses propres machines. Pour que les choses restent simples et cohérentes, nous utilisons des domaines similaires dans le code et les mettons à jour. /etc/hosts
pour résoudre ces domaines à localhost.
- fonctionne bien pour mon navigateur Web; les temps de réponse sont rapides
- Il faut environ 4 secondes à curl et wget pour résoudre le problème DNS avant de répondre correctement à la demande.
J'ai trouvé le --resolve
drapeau pour curl qui résout le retard , mais je pourrais tout aussi bien utiliser 127.0.0.1
et définir les en-têtes nécessaires pour obtenir le même effet.
avec drapeau (et mis à jour /etc/hosts
fichier)
# /etc/hosts
...
127.0.0.1 mp-api.example.local
commander
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'
avec 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'
Quelles sont certaines des raisons du retard dans la résolution DNS pour des outils tels que curl
et wget
? Et quels sont les moyens efficaces de résoudre ce retard?
/etc/nsswitch.conf
n'existe pas sur mon ordinateur. Je l'ai ajouté, avec les valeurs que vous avez suggérées, mais je reçois toujours un délai de 4 secondes pour les demandes curl et wget. Les demandes de navigateur ne rencontrent pas le même retard.