【问题标题】:nginx appears to be listing on port 80 but curl gets connection refusednginx 似乎在端口 80 上列出,但 curl 被拒绝连接
【发布时间】:2016-10-25 17:30:31
【问题描述】:

我有一台安装了 Ubuntu 16.04、nginx 1.10.2 的机器。这是我为开发站点设置的配置:

 server {
     listen   80; 
     listen   [::]:80 default_server ipv6only=on;
     server_name commandcenter.dev;
     root /var/www/commandcenter;
     index index.php index.html index.htm;
     location ~ \.php$ {
         try_files $uri =404;
         fastcgi_split_path_info ^(.+\.php)(/.+)$;
         fastcgi_pass unix:/var/run/php5-fpm.sock;
         fastcgi_index index.php;
         include fastcgi_params;
     }
 }

一切正常启动。 Nginx 正在运行:

● nginx.service - LSB: Stop/start nginx


Loaded: loaded (/etc/init.d/nginx; bad; vendor preset: enabled)
   Active: active (running) since Tue 2016-10-25 04:53:51 UTC; 8min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 11195 ExecStop=/etc/init.d/nginx stop (code=exited, status=0/SUCCESS)
  Process: 11205 ExecStart=/etc/init.d/nginx start (code=exited, status=0/SUCCESS)
    Tasks: 2
   Memory: 1.3M
      CPU: 10ms
   CGroup: /system.slice/nginx.service
           ├─11216 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.con
           └─11218 nginx: worker process

Oct 25 04:53:51 commandcenter systemd[1]: Stopped LSB: Stop/start nginx.
Oct 25 04:53:51 commandcenter systemd[1]: Starting LSB: Stop/start nginx...
Oct 25 04:53:51 commandcenter systemd[1]: Started LSB: Stop/start nginx.

我认为它在端口 80 上列出:

$ sudo netstat -nlp | grep nginx
6:tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      11216/nginx.conf
8:tcp6       0      0 :::80                   :::*                    LISTEN      11216/nginx.conf

我可以 ping 服务器并正常访问它。当我尝试使用 curl 或通过浏览器点击它时,我得到:

$ curl -I commandcenter.dev
curl: (7) Failed to connect to commandcenter.dev port 80: Connection refused

我不确定我需要进一步检查或更改以通过 nginx。我检查了错误和访问日志,都没有。

【问题讨论】:

  • 这是在你的本地机器上吗?如果是这样,您需要配置/etc/hosts/并添加commandcenter.dev 127.0.0.1,以便它知道它必须通过环回接口。
  • 这不在我的本地机器上,这是一个虚拟盒子。机器的IP是10.10.10.1。我已经把它放在我的主机文件中了。我可以 ping 服务器,但使用 curl/浏览器的任何请求都会失败。
  • 我明白了。您是尝试从虚拟框内还是从主机访问该站点?
  • 我正在从主机访问该站点。
  • 在这种情况下,您需要进行一些额外的配置。 This 是一种方法,但互联网上有很多例子。

标签: curl nginx


【解决方案1】:

server_name设置为

server {
    server_name .commandcenter.dev;
}

如果您想捕获域、任何子域和完全限定的域名。

如果您只有一个 server 块,则 server_name 是可选的。

【讨论】:

  • 我已将服务器块更新为 .commandcenter.dev、www.commandcenter.dev,并注释掉了 server_name。使用所有选项,我不再收到连接被拒绝错误,现在我只是收到连接超时。
  • 您要访问哪些 URL?您的位置块设置为匹配以 .php 结尾的任何内容。为它创建一个简单的 html 文件,一个简单的位置块并尝试卷曲它。
  • 我试过www.commandcenter.dev,commandcenter.dev,直接输入IP,10.10.10.1。都给出相同的结果。
猜你喜欢
  • 2021-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-05
  • 2018-06-11
  • 1970-01-01
  • 2020-07-06
  • 2019-12-18
相关资源
最近更新 更多