django - Runserver Django 在生产中成功,但无法访问站点。但是我可以通过 ngrok 隧道
问题描述
在生产中,我运行 django 项目
python3 manage.py runserver
结果:
Performing system checks...
System check identified no issues (0 silenced).
December 09, 2019 - 03:23:26
Django version 2.2.7, using settings 'myproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
我也试过python3 manage.py runserver 0.0.0.0:8000
但是当我访问它时,该站点被拒绝连接。(我试过了0.0.0.0:8000
,,,127.0.0.1:8000
)site-url:8000
当我通过 ngrok 隧道时,它运行顺利。所以我发现 django 项目已经在运行,但是我们无法从外部访问它。
当我跑sudo lsof -i -P -n | grep LISTEN
结果是:
sshd 890 root 3u IPv4 18590 0t0 TCP *:22 (LISTEN)
sshd 890 root 4u IPv6 18592 0t0 TCP *:22 (LISTEN)
apache2 6049 root 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6049 root 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
python3 6117 aina 4u IPv4 2896228 0t0 TCP 127.0.0.1:8000 (LISTEN)
apache2 6141 www-data 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6141 www-data 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
ngrok 6198 root 3u IPv4 2896574 0t0 TCP 127.0.0.1:4040 (LISTEN)
apache2 6383 www-data 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6383 www-data 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
apache2 6401 www-data 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6401 www-data 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
apache2 6417 www-data 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6417 www-data 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
apache2 6419 www-data 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6419 www-data 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
apache2 6420 www-data 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6420 www-data 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
apache2 6421 www-data 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6421 www-data 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
apache2 6512 www-data 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6512 www-data 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
apache2 6555 www-data 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6555 www-data 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
apache2 6693 www-data 4u IPv6 2895520 0t0 TCP *:80 (LISTEN)
apache2 6693 www-data 6u IPv6 2895524 0t0 TCP *:443 (LISTEN)
我尝试通过运行 telnet 到端口 8000
telnet 127.0.0.1 8000
结果是:
Connected to 127.0.0.1.
Escape character is '^]'.
由于服务器中正在运行其他项目(Apache 中的 PHP 应用程序),我遵循这个问题Run both Django and PHP application in Apache
但是当我直接访问该站点时(不是通过 ngrok),仍然无法访问该站点。我应该怎么做才能访问 django?
解决方案
这是因为我通过https访问它应该来自http
推荐阅读
- php - 如何通过允许 mod_rewrite 作为查询字符串和页码进行 .htaccess 搜索?
- c# - C# Google OAUTH2 在 Mono 上使用 OWIN 导致“System.Web.HttpException (0x80004005): headers have been sent”
- swift - Swift XML Parser 未正确触发
- c# - 使用新的 ObservableCollection 更新视图会导致布局重复
- angular - 适合基于微服务架构的 UI 框架
- c - 步进电机运行极慢
- delphi - 如何修复错误:Delphi 中需要数组类型
- ajax - 表单自动填充不适用于 JSF Ajax 请求
- react-admin - 显示没有任何资源的仪表板
- excel - VBA更改数据透视表源表