本地Django网站不会在浏览器中加载

jba*_*037 2 django virtualbox centos localhost vagrant

我猜这是一个非常简单的解决方案,但我搜索了每个论坛和设置指南,但无法弄清楚:

我在本地服务器上构建了一个Django/CentOS-6.3环境(使用VirtualBox和Vagrant).当我使用'python manage.py runserver [::]:8000'在vagrant终端启动我的服务器时,它启动时没有错误.

Validating models...

0 errors found
May 31, 2013 - 13:56:15
Django version 1.5.1, using settings 'mysitename.settings'
Development server is running at http://[::]:8000/
Quit the server with CONTROL-C.
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试http://127.0.0.1:8001在我的浏览器中导航到' '(我在Vagrantfile中设置端口转发从端口8000到端口8001)时,浏览器只挂起5分钟直到超时,然后它返回消息:

> The connection was reset 
> The connection to the server was reset while the page was loading. 
> ...
Run Code Online (Sandbox Code Playgroud)

即使在我关闭本地服务器之后,这也是我从浏览器获得的完全相同的消息.我的计算机显然将此识别为转发端口,因为我尝试的任何其他端口(例如8000)会立即返回错误,指出它无法在127.0.0.1:8000建立与服务器的连接.

关于服务器文件,我过去曾经使用Django/Ubuntu做了很多类似的设置,并且从来没有遇到过任何问题,但是Django/CentOS肯定会有一些不同的东西导致这种情况发生(或者我犯了一个错误)我的一个服务器文件中有人).我也跟踪过在CentOS上设置Django和PostgreSQL的指南,但无济于事.我将评论我在下面创建/编辑的一些文件.

如果有人有解决方案,甚至有关于从何处开始寻找错误的建议,我将非常感激.

小智 5

如果你的网络配置正确,你的django应用程序

python manage.py runserver 0.0.0.0:8000

并且您仍然无法从VM主机访问您的django应用程序几乎肯定存在防火墙问题.如果你正在运行iptables,上面的解决方案是好的.

我在Windows 7主机上的虚拟机VM上部署了CentOS 7.我不知道这个发行版使用firewalld,而不是iptables来控制访问.

如果

ps -ae | grep防火墙

返回类似的东西

602?00:00:00 firewalld

你的系统正在运行firewalld,而不是iptables.他们不会一起跑.

要更正VM,以便您可以从主机访问django站点,请使用以下命令:

firewall-cmd --zone = public --add-port = 8000/tcp --permanent

firewall-cmd --reload

非常感谢pablo v在"在虚拟机上访问django服务器"这一帖子中指出这一点.