django 教程返回'ERR_EMPTY_RESPONSE'

Cla*_*ark 3 django ubuntu-10.04

我正在关注 django 教程:虚拟环境中的 1.8 版、Ubuntu 10.04、python 3.4。我似乎在我的 Ubuntu 服务器上创建了一个 django 项目(yatest)就好了,然后我启动了开发服务器:

(v1)cj@drop1:~/www/yatest$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
August 09, 2015 - 04:37:33
Django version 1.8.3, using settings 'yatest.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Run Code Online (Sandbox Code Playgroud)

但是当我浏览到http://myserver:8000 时,我得到的响应是“ERR_EMPTY_RESPONSE”。

这是创建应用程序之前教程的第一部分。在本教程的早期阶段,它没有提到我可以检查的任何错误日志。我的 telnet 客户端没有说任何崩溃,'ctl-c' 将毫无怨言地关闭服务器进程。

使用 netstat -lntp 我验证没有其他进程使用端口 8000。我没有安装 Apache。我确实安装了 gunicorn 和 nginx,但两者都已停止并且在教程中尚未使用。

我对 linux 比较陌生;我可以使用一些帮助来查找错误日志或其他调试工具来解决这个问题。我不怀疑我错过了一些基本的操作系统设置或启用 TCP 访问等的设置。

谢谢克拉克

Cla*_*ark 8

发现我的错误。在专用服务器上启动 dev django 服务器时,必须在命令中包含专用服务器的地址。在与浏览器相同的机器上启动开发服务器时不需要此操作。所以代替

$python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

你必须跑 $python manage.py runserver <server ip>:8000

所以这是我在堆栈交换方面不光彩的开始。你什么都没看到!:P

  • 我通过 docker 在容器内运行 Django 时遇到了同样的问题!你救了我的命 (3认同)

小智 5

如果您在虚拟环境中本地运行,则需要指定端口和地址:

python manage.py runserver 127.0.0.1:8000

对于容器,最容易监听所有地址:

python manage.py runserver 0.0.0.0:8000

对于在 docker 环境中使用 PyCharm 的任何人,还值得知道的是 PyCharm 将覆盖您的docker-compose配置以更改runserver命令以绑定到窗口中Host选项中指定的端口Run/Debug Configurations

如果要使用调试器等,请确保将主机设置为0.0.0.0和端口8000