Mes cartes de fichiers d'hôtes 127.0.0.1
à localhost
.
$ curl -I 'localhost'
curl: (7) Failed to connect to localhost port 80: Connection refused
Et alors
$ curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx/1.2.4
Date: Wed, 09 Apr 2014 04:20:47 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 23 Oct 2012 21:48:34 GMT
Connection: keep-alive
Accept-Ranges: bytes
Dans mon fichier hosts j'ai
127.0.0.1 localhost
Il semble que la commande curl
ne reconnaisse pas les entrées dans /etc/hosts
. Quelqu'un peut-il expliquer pourquoi?
mise à jour: Je n'ai pas encore essayé, mais j'ai découvert que vous pouvez configurer nginx pour répondre à ipv4 et ipv6
Depuis que tu as un ::1 localhost
_ dans votre fichier hosts, il semblerait que curl tente d'utiliser IPv6 pour contacter votre serveur Web local.
Le serveur Web n'écoutant pas sur IPv6, la connexion échoue.
Vous pouvez essayer d'utiliser le --ipv4
option sur curl
, ce qui devrait forcer une connexion IPv4 lorsque les deux sont disponibles.
Si quelqu'un d'autre rencontre cela et que la réponse acceptée ne fonctionne pas (cela ne m'est pas arrivé), vérifiez si vous devez spécifier un port autre que 80. Dans mon cas, j'utilisais un Rails serveur à localhost:3000
et utilisait juste curl http://localhost
, qui frappait le port 80.
Changer la commande en curl http://localhost:3000
est ce qui a fonctionné dans mon cas.
J'ai également eu un problème de connexion refusée sur le port 80. Je n'ai pas utilisé localhost.
curl --data-binary "@/textfile.txt" "http://www.myserver.com/123.php"
Le problème était que j'avais des trémas äåö dans mon fichier texte.txt.
Dans mon cas, le fichier ~/.curlrc avait un mauvais proxy configuré.