LAN 上的其他系统无法访问 Web 服务器

LAN 上的其他系统无法访问 Web 服务器

我正在尝试在 Mac 上测试通过 nginx 提供服务的网站。在同一台 Mac 上访问服务器时一切正常,但当我尝试通过 Mac 的 IP 地址从同一 WAN 上的几台 Windows 计算机访问它时,我只能得到“无法显示此页面”的结果。我很确定这一点用过的上班…

在 Windows 机器上使用 IE 和 Telnet 尝试访问我的服务器均失败。但是,如果我在 OS X 系统偏好设置的网络窗格中打开 Windows 共享,我就可以访问文件系统,所以我知道并不是我的整个 Mac 都无法访问。

我以为可能是防火墙的问题,但我检查后确认我的 wifi 路由器没有启用防火墙。OS X 有防火墙,但 nginx 有一个漏洞,完全禁用 OS X 防火墙无论如何也无济于事。

在我的 Mac 上,当我尝试从 Windows 机器访问服务器时,我可以看到 nginx 的错误或访问日志中没有添加任何内容,因此我认为故障发生在网络层。

我是网络新手,不知道下一步该怎么做。任何关于下一步该怎么做的建议我都非常感谢。

答案1

我不是 nginx 专家,但 Web 服务器可能只监听环回接口 (127.0.0.1),而不监听您的以太网接口。尝试监听 * 以匹配所有接口。

更多信息请点击这里: http://wiki.nginx.org/HttpCoreModule#listen

答案2

您可以使用 NETSTAT 命令检查服务器是否正在监听所有可用的 IP 地址。

你要确保有东西在监听 IP 地址 0.0.0.0(这意味着所有可用的 IP)或你的网络 IP

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN

如果您没有看到类似的东西,那么您可能需要检查 nginx 是否配置为将自身绑定到所有可用的 IP 地址。为此,您需要查看配置文件,这些文件最有可能被称为 nginx.conf(我的位于 /opt/nginx/conf,您的可能不同)以及 sites.conf 文件(通常 vhost 存储在此处)。

在其中一个文件中,你应该有一个用花括号括起来的服务器部分。在这里你应该看到一个 listen 指令。它应该像这样:

listen 80;

如果没有的话,您能发布配置以便我们查看吗?

如果您已检查以上两项,并且在端口 80 上有一个监听,并且 nginx 已配置为监听请求,那么我们将必须进行一些额外的调试!

相关内容