【问题标题】:Django is not available from forwarded port转发端口无法使用 Django
【发布时间】:2018-02-08 14:13:56
【问题描述】:

我正在尝试从另一个网络上的另一个节点连接到我的网站。如果节点在同一个网络中,我可以毫无问题地连接到网站。

我已经为 ssh 和 Django (8000) 转发了端口,我还在端口 9080 上准备了 apache。

ssh 和 apache 端口在从外部 IP 地址连接到它们时工作正常,Django 出于某种原因不能。

首先,我尝试在 8000 端口上运行服务器:

python manage.py runserver 0.0.0.0:8000

当从与服务器位于同一网络中的节点连接时,这完全可以正常工作,但由于某种原因,每当我尝试从外部 IP 地址访问它时,连接都会被拒绝。

为了确保它是 Django,我还尝试在与 Apache (9080) 相同的端口上运行服务器,但我没想到会出现“无错误”响应,因为我知道该端口已被占用。但是根本没有任何变化,我仍然获得了与以前相同的 Apache 页面。

我还尝试在防火墙上允许端口8000

sudo ufw allow 8000/tcp

但很确定这不是问题,因为这个 Debian 没有任何防火墙。

我也尝试在设置中清空ALLOWED_HOSTS,但没有进展。


似乎Django对外部连接没有影响,可能是什么原因?

在这种情况下,我也很难理解其他 http web 服务器平台(例如 Apache、Nginx)的用途,Django 不是在创建 web 服务器本身及其自定义 wsgi 吗?

防火墙不是问题,Web服务器也不是问题,那么问题可能是由Django本身引起的吗?也许是外部防火墙?

【问题讨论】:

    标签: python django http debian webserver


    【解决方案1】:

    尚不清楚您如何配置 Apache 以将请求转发给 Django,您似乎将它们视为两个独立的组件。如果要在 Django 前面使用 Web 服务器(推荐用于生产环境),则需要同时配置 Apache 和 Django。

    然后,当您在开发模式 (python manage.py runserver 0.0.0.0:8000) 下运行 django 时,您应该在 http://server_ip:8000 中访问 Django,而不管 Apache 是什么,也许有另一个防火墙阻止了连接。使用 tracert / traceroute 找出连接被阻塞的位置。

    最后,对于生产环境,建议在 Django 前面使用一个 web 服务器,以提高安全性和性能。有关详细信息,请参阅docs

    我的猜测是您有另一个防火墙阻止了该端口。您使用ufw打开了本地防火墙,但可能有外部防火墙。

    1. python manage.py runserver 0.0.0.0:8000 正确启动?如果是这样,请留意日志。
    2. 在服务器内部,发出请求wget http://localhost:8000。应记录该请求
    3. 如果您可以从服务器外部访问 Apache 的 9080 端口,您可以:
      • 使用nmap查找服务器中打开/关闭/过滤的端口,看看中间是否有其他防火墙。
      • 配置 Apache 将请求转发给 Django,尽管这并不能解决问题

    在您的问题中,您说您已经为 ssh 和 Django 转发了端口。这究竟是什么?您确定您没有错误配置您的 ssh 服务器以侦听端口 8000?

    【讨论】:

    • 您好,感谢您的回答。我怀疑它是防火墙,因为这个 Debian 没有任何防火墙。我已经手动安装了ufw。看起来Django由于某种原因对端口没有影响,还有其他原因吗?
    • 我会检查网络配置而不是责怪 Django。请检查我的更新答案。
    • 谢谢。发送并记录 GET 请求。关于您的问题,由于我从外部 ip 访问服务器,因此我的同事转发了 ssh 和 http 服务器的端口。虽然很抱歉,但不确定 Django 本身。
    • 在 Django 的 settings.py 中你有什么 DEBUG 和 ALLOWED_HOSTS ?
    • 就是这样。删除 ALLOWED_HOSTS 的内容。 (ALLOWED_HOSTS = [])。更多信息here
    猜你喜欢
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 2015-07-11
    • 2021-02-02
    相关资源
    最近更新 更多