[curl] curl Failed to connect to localhost port 80

My hosts file maps 127.0.0.1 to localhost.

$ curl -I 'localhost'
curl: (7) Failed to connect to localhost port 80: Connection refused

And then

$ 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

In my hosts file I have

127.0.0.1   localhost

It appears that curl command fails to recognize entries in /etc/hosts. Can someone explain why?

update: i've yet to try this but i've discoved you can configure nginx to respond to ipv4 and ipv6

This question is related to curl nginx

The answer is


If anyone else comes across this and the accepted answer doesn't work (it didn't for me), check to see if you need to specify a port other than 80. In my case, I was running a rails server at localhost:3000 and was just using curl http://localhost, which was hitting port 80.

Changing the command to curl http://localhost:3000 is what worked in my case.


In my case, the file ~/.curlrc had a wrong proxy configured.


I also had problem with refused connection on port 80. I didn't use localhost.

curl --data-binary "@/textfile.txt" "http://www.myserver.com/123.php"

Problem was that I had umlauts äåö in my textfile.txt.