【问题标题】:no http server will serve pages from my server没有 http 服务器将提供来自我的服务器的页面
【发布时间】:2016-06-10 07:29:09
【问题描述】:

我有安装了 nodejs、mongodb 和 nginx 的 ubuntu 14.04 服务器版本。这一直工作到昨天。由于暴风雨,我的互联网中断了大约 8 个小时,在恢复后,nodejs 工作,mongo 工作,但任何连接到端口 80 的人都会得到ERR_CONNECTION_REFUSED。我试图切换监听端口只是为了看看会发生什么并得到相同的结果。我可以使用服务器的内部 IP,我仍然得到ERR_CONNECTION_REFUSED,但是通过 localhost 或 127.0.0.1 在服务器本身上通过 lynx 访问端口 80,应用程序运行良好。我也尝试过使用 apache 而不是 nginx,但它也不起作用。我完全禁用了我的 ufw,重新启动服务器,双重和三重检查配置。甚至 netstat 都说服务器正在侦听端口 80,nmap 扫描显示端口 80 已打开并正在侦听,但尝试连接它会得到ERR_CONNECTION_REFUSED

我不知道该怎么做,根据谷歌和堆栈溢出搜索结果,我是网络服务器历史上第一个不得不问这个问题的人,所以我在任何地方都找不到任何有用的东西。

提前致谢

UFW 状态

user@io# ufw status
Status: inactive

Nginx 状态

user@io# service nginx status
* nginx is running

Nginx 访问日志

user@io:/var/log/nginx# cat access.log 
::1 - - [26/Feb/2016:16:04:23 -0600] "GET / HTTP/1.0" 200 7746 "-" "Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23"

网络统计

user@io# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      977/mongod      
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      23009/nginx     
tcp        0      0 127.0.0.1:28017         0.0.0.0:*               LISTEN      977/mongod      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      974/sshd        
tcp        0      0 0.0.0.0:9561            0.0.0.0:*               LISTEN      2083/node       
tcp6       0      0 :::80                   :::*                    LISTEN      23009/nginx     
tcp6       0      0 :::22                   :::*                    LISTEN      974/sshd        
udp        0      0 0.0.0.0:27712           0.0.0.0:*                           808/dhclient    
udp        0      0 0.0.0.0:68              0.0.0.0:*                           808/dhclient    
udp6       0      0 :::52391                :::*                                808/dhclient    `

【问题讨论】:

  • 不确定您的设置,但问题出在其他地方吗?你有带端口转发的路由器/防火墙吗?您的 IP 地址是静态的吗(一旦互联网重新上线,它就不可能被更新)?有点宽泛的问题。
  • IP地址是静态的,前面有防火墙,但是我通过将静态IP设置为1:1 NAT完全绕过防火墙排除了(所有端口转发无限制) ) 另外,如果它是外部防火墙,那么我应该能够通过其内部 IP 访问应用程序。但是,是的,当我发现服务器上的事情似乎无法正常工作时,我首先想到的是
  • 我讨厌这些类型的问题,太多的变量,而且可能是一个简单的解决方案......经过几个小时的混乱。你有多少个网络接口?
  • 好吧,如果我将 nginx 端口更改为 3000,那么端口 3000 会显示ERR_CONNECTION_REFUSED,但端口 80 可以工作!如果 nginx 正在侦听端口 3000,则 nothign 应该在端口 80
  • 实际上,如果它告诉它在 80 以外的任何端口上侦听,它在端口 80 上工作正常。这没有任何意义!和 apache 一样!

标签: apache http ubuntu nginx ubuntu-14.04


【解决方案1】:

尝试iptables -t nat -F 清除所有预路由规则。

【讨论】:

  • 这样做了。我不知道它是如何到达那里的,因为没有人添加它,在我今天将 nginx 中的端口随机更改为该端口之前也没有使用 3000,但这确实解决了问题,谢谢
  • Bingo... 尝试重新启动服务器以确保没有脚本自动将 nat 规则添加到 iptables。如果重新启动后它不起作用,那么您需要继续寻找有问题的脚本。
  • 在 3 cmets 后说防火墙...一小时前
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-20
  • 2023-02-14
  • 2020-09-01
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
相关资源
最近更新 更多