【发布时间】:2022-01-23 06:23:36
【问题描述】:
我是 Linux 和 Nginx 的新手。只是想为一个学校项目学习一点 Nginx。 我已经尝试过,但我无法访问该网站,我只是得到“无法访问此页面”,我正在使用 Chromebook Linux 来执行此操作,因为它是我唯一可以使用的设备,它是由学校。我想可能是因为 VM,但我也可以在 Chromebook(VM 之外)本身上看到该网站,但其他本地设备都无法连接。 chrome book Linux 没有我所知道的防火墙。我已经测试了一些默认防火墙以确保没有:
- 无法停止 iptables.service:未加载单元 iptables.service。
- 未能停止 ipchains.service:未加载单元 ipchains.service。
- sudo: ufw: 找不到命令
这是我启用网站的文本文件:
server {
listen 89;
listen [::]:89;
server_name test.com;
root /home/parsa/nginx-template-test/clouds-html5-multipurpose-landing-page-template;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
我使用的是 89 端口,所以我也可以使用“欢迎使用 Nginx”来检查我是否做错了什么,也可以作为参考。 我在渲染网站的设备上使用这些设置没有问题。除了添加新的文本文件以启用该站点外,我没有进行任何其他更改,包括 nginx.conf 在内的所有内容都与您刚下载 nginx 时一样。我已经检查过了,我也无法访问欢迎访问 Nginx 网站。但它们在运行 Nginx 的计算机上工作得很好。 我正在运行 Debian GNU/Linux 10 (buster)
更新:
Linux 在容器中运行,它实际上不是虚拟机。我还听说容器与 Chromebook 有一个单独的网络(并且容器没有路由器提供的 IP),这就是为什么 IP 看起来很奇怪(100.115.92.201),他们告诉我唯一的方法是端口转发,您不能使用桥接网络,因为容器网络设置是专门的。
【问题讨论】:
-
如果我理解正确,该站点托管在 Chromebook 上的虚拟机上,而您正尝试从同一本地网络上的其他计算机(例如另一台 Chromebook 或其他计算机)访问它?如果是,则问题与nginx无关,是DNS。你有
server_name test.com,这真的是你用来从托管 Chromebook 访问它的 URL 吗?如果是,大概您已经设置了一个/etc/hosts记录,以便机器知道在哪个 IP 上找到该 URL?但是网络上的其他计算机将使用公共 DNS 来尝试找到该计算机 - 任何答案都不会是您的 Chromebook。 -
我想使用我设备的 IP 地址和为其编写的端口访问该网站。像 100.234.67.54:89 但如果有办法只使用 URL,那将是一个很好的原因,只想在本地使用它。
-
那个IP看起来像一个公共地址,即公共互联网上的IP,任何人都可以访问?如果您将站点推送到某个托管服务提供商,或者您在路由器上设置了 NAT 内容,以便内部本地网络上的机器暴露于公共互联网,您将使用它。这个 IP 是从哪里来的,如果你把它放在你的浏览器中,它真的对你有用吗?
-
我认为你在一些与 ngnix 无关的网络问题上搞混了。在本地家庭网络上查找 Chromebook 的 IP,也许最简单的方法是查看 wifi 路由器上的已连接设备列表,然后查看它在那里的 IP。然后在同一本地/家庭网络上的其他机器上尝试该 IP:89。我认为没有必要,但您也可以更新您的 nginx vhost 配置:
server_name your-local-ip. -
是的,我正在尝试使用我的虚拟机的本地 IP,然后是端口。但你说我应该使用 chrome book 本地 IP。我也在想,其他设备如何连接到具有另一个 IP 的设备,这不是问题吗?还是我在这里很笨?!