无法通过域URL访问Nginx网站

时间:2018-11-02 23:24:08

标签: django http nginx server dns

问题:

我已经在家庭网络上建立了一个(Docker)Django-Gunicorn-Nginx网站。它可以在本地网络上运行,但是我无法通过我的域访问它。

设置:

  • 在namecheap.com中注册一个域。
  • 设置动态DNS以使用namecheap域更新我的公共IP。
  • 在家庭网络中的计算机上设置网站并为其提供静态IP。
  • 启用从公用80到LAN 80的端口转发。

测试

  • 我已在端口22上启用了端口转发功能,并且能够通过SSH使用ssh user@domain连接到服务该网站的计算机,并且运行良好-> domain/ddns ok

  • 我已经通过使用连接网站的计算机的完整静态IP来从连接在同一LAN上的另一台计算机访问该网站,并且运行良好-> website/server ok

  • 我已经致电我的ISP,以检查是否一切设置正确,是否可以通过我的网络为网站提供服务,显然没有问题-> router/network ok

    < / li>

线索:

当我尝试通过域或完整的公共IP从家庭网络外部访问该站点时,会收到ERR_EMPTY_RESPONSE。

当我尝试从我的家庭网络,通过域或使用完整的公共IP(而不是通过实际起作用的LAN IP)访问站点时,我被重定向到页面192.168.0.1/intercept.html,其中包含来自我的ISP的一条消息,说我没有连接到互联网(实际上已经连接到互联网):

enter image description here

所以,在这一点上我有点迷茫。我想知道解决这种情况的最佳方法是什么。

1 个答案:

答案 0 :(得分:0)

正如@ ben5556所建议的那样,我尝试使用端口8000,并且该端口有效:)因此,我的ISP可能阻塞了端口80。

首先,我尝试使用端口8080,但在路由器配置页面上启用端口转发时,它显示警告,指出该端口已为其他内容保留,因此我尝试使用端口8000。

这很烦人,因为我给我的ISP打了电话,他们说使用端口80应该没有问题。此外,在端口80上启用端口转发时完全没有警告。

更新

在公共端口8000上为网站提供服务是没有意义的,因为浏览器默认使用端口80,因此最终的解决方案是启用从公共端口80到LAN 8000的端口转发。显然只有LAN端口80被阻止,因此该解决方案可以很好地工作。