curl无法连接到本地主机端口80

axkjgtzd  于 2022-11-13  发布在  其他
关注(0)|答案(7)|浏览(971)

宿主的文件将127.0.0.1Map为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中的条目。有人能解释为什么吗?

**更新:**我还没有尝试过,但我发现您可以配置nginx to respond to ipv4 and ipv6

daolsyd0

daolsyd01#

由于主机文件中有一行::1 localhost,因此curl似乎正在尝试使用IPv6来联系本地Web服务器。
由于Web服务器未侦听IPv6,因此连接失败。
您可以尝试使用curl--ipv4选项,这应该会在两者都可用时强制建立IPv4连接。

km0tfn4u

km0tfn4u2#

如果其他人遇到这种情况,并且接受的答案不起作用(对我来说不起作用),请检查是否需要指定80以外的端口。在我的情况下,我在localhost:3000上运行一个rails服务器,并且只是使用curl http://localhost,这就命中了端口80。
将命令更改为curl http://localhost:3000在我的案例中是有效的。

vngu2lb8

vngu2lb83#

在我的例子中,文件~/.curlrc配置了一个错误的代理。

nkcskrwz

nkcskrwz4#

我还遇到了端口80上被拒绝连接的问题。我没有使用localhost。

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

问题是我的textfile.txt文件中有变音。

wr98u20j

wr98u20j5#

我以前在我的负载平衡器服务器上遇到过同样的错误。我使用两台服务器和一个负载平衡器。在我的两台服务器上,我运行的是NginX,但在负载平衡器上,我运行的是Haproxy。我发现不小心在LB上安装了Nginx。解决方案:

sudo rm /etc/nginx/nginx.conf
sudo rm -rf /etc/nginx/
sudo apt purge nginx
sudo service haproxy restart

然后再次运行命令curl -I localhost

wlp8pajw

wlp8pajw6#

在我的例子中,当我在nginx.conf中添加以下内容时,问题就解决了:resolver,events,root和upstream(可能对某些人有用).我的nginx.conf(在我修复了错误之后):

worker_processes  1;
events {
  worker_connections  1024;
}    
http{
  upstream back-stream {
    server back:8080;
  }
  server {
    listen 80;
    listen [::]:80;
    server_name test.com www.test.com;
    location / {
      root   /usr/share/nginx/html;
      resolver 121.0.0.11;
      proxy_pass http://back-stream;
    }
  }
}

我的Dock合成文件:

version: '3.9'
services:
  nginx-proxy:
    image: nginx:stable-alpine
    container_name: nginx-proxy
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    networks:
       - network
  back:
    image: "mycustomimage"
    container_name: back
    restart: unless-stopped
    ports:
      - '81:8080'
    networks:
       - network
networks:
  network:
    driver: bridge
pxyaymoc

pxyaymoc7#

有时候你需要确保网络服务器正在运行。在我的例子中,我在停止nginx网络服务器后忘记了启动它。

sudo service nginx status

要在关闭时启动:

sudo service nginx start

注意:如果您使用的是apache2,请将nginx替换为apache2

curl localhost

相关问题