ホストファイルは127.0.0.1
をlocalhost
にマップします。
$ curl -I 'localhost'
curl: (7) Failed to connect to localhost port 80: Connection refused
その後
$ 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
私のホストファイルには
127.0.0.1 localhost
curl
コマンドは/etc/hosts
のエントリを認識できないようです。誰かが理由を説明できますか?
update:私はまだこれを試してみましたが、発見できました ipv4とipv6に応答するようにnginx
Hostsファイルに::1 localhost
行があるため、curlはIPv6を使用してローカルWebサーバーに接続しようとしているようです。
WebサーバーはIPv6をリッスンしていないため、接続は失敗します。
curl
に--ipv4
オプションを使用すると、両方が使用可能な場合にIPv4接続を強制する必要があります。
他の誰かがこれに遭遇し、受け入れられた答えが機能しない場合(私にとってはそうではなかった)、80以外のポートを指定する必要があるかどうかを確認してください。私の場合、Railsサーバーはlocalhost:3000
にあり、ポート80にヒットしていたcurl http://localhost
を使用していました。
私の場合、コマンドをcurl http://localhost:3000
に変更することがうまくいきました。
また、ポート80で拒否された接続に問題がありました。localhostを使用しませんでした。
curl --data-binary "@/textfile.txt" "http://www.myserver.com/123.php"
問題は、textfile.txtにウムラウトäåöが含まれていたことです。
私の場合、ファイル〜/ .curlrcには間違ったプロキシが設定されていました。