django 教程返回“ERR_EMPTY_RESPONSE”

问题描述 投票:0回答:4

我正在遵循 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.

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

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

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

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

谢谢 克拉克

django ubuntu-10.04
4个回答
14
投票

发现我的错误。 当在专用服务器上启动 dev django 服务器时,必须在命令中包含专用服务器的地址。 当在与浏览器相同的计算机上启动开发服务器时,不需要这样做。所以而不是

$python manage.py runserver

你必须跑

$python manage.py runserver <server ip>:8000

所以这是我在堆栈交换上不光彩的开始。 你什么也没看见! :P


10
投票

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

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


1
投票

如果你不想麻烦地确定服务器IP(即当你使用容器时),你可以监听0.0.0.0:8000

python manage.py runserver 0.0.0.0:8000

0
投票

我也遇到了同样的问题,但出于不同的原因,所以-万一其他人的情况和我一样奇怪......

我在 django-girls 教程中一直得到空洞的回复。

我这样做是为了了解 Python/Django 的基础知识,因为我正在专业地开发一个使用它们的项目。

我没有意识到的是,我在工作中打开了一个容器(如在 docker 容器中),这在某种程度上破坏了本地映射。 具体原因我还没有弄清楚。 这些容器没有映射到端口 8000 - 据我所知,它们只访问了 5432 和 8443。 (这是容器的启动输出。)

2024-07-02 10:44:58.627 UTC [1] LOG:  starting PostgreSQL 16.1 (Debian 16.1-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-07-02 10:44:58.689 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-07-02 10:44:58.689 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2024-07-02 10:44:58.697 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-07-02 10:44:58.709 UTC [29] LOG:  database system was shut down at 2024-07-02 10:43:39 UTC
2024-07-02 10:44:58.746 UTC [1] LOG:  database system is ready to accept connections
[2024-07-02 10:44:59 +0000] [1] [INFO] Starting gunicorn 22.0.0
[2024-07-02 10:44:59 +0000] [1] [INFO] Listening at: https://0.0.0.0:8443 (1)
[2024-07-02 10:44:59 +0000] [1] [INFO] Using worker: gthread
[2024-07-02 10:44:59 +0000] [7] [INFO] Booting worker with pid: 7
[2024-07-02 10:44:59 +0000] [8] [INFO] Booting worker with pid: 8

无论如何,以防万一其他人被这个绊倒。 停止容器修复了空响应。

© www.soinside.com 2019 - 2024. All rights reserved.