所以,我查看了堆栈溢出+其他网站,但无法解决这个问题:因此发布这个问题!
我最近开始学习 django...并且现在尝试在 ec2 上运行它。
我有一个以下格式的 ec2 实例: ec2-xx-xxx-xx-xxx.us-west-2.compute.amazonaws.com,在该实例上运行着 django 应用程序。我更改了该实例的安全组以允许 http 端口 80 连接。
我确实尝试通过以下方式运行 django 应用程序: python manage.py runserver 0.0.0.0:8000 和 python manage.py runserver ec2-xx-xxx-xx-xxx.us-west-2.compute.amazonaws.com :8000 这似乎也没有帮助!
为了确保 django 方面没有任何错误,我打开了另一个终端窗口并 ssh 进入实例,并向 localhost:8000/admin 发出了一个curl GET 请求,该请求成功完成。
我哪里错了?将不胜感激任何帮助!
您正在端口 8000 上运行应用程序,而该端口未在实例上打开(您仅打开了端口 80)。
因此,要么从安全组关闭端口 80 并打开端口 8000,要么在端口 80 上运行您的应用程序。
在小于 1024 的端口上运行任何应用程序都需要 root 权限;所以如果你尝试这样做python manage.py runserver 0.0.0.0:80
作为普通用户,您会收到错误消息。
而不是做sudo python manage.py runserver 0.0.0.0:80
,你有几个选择:
为 django 运行预配置的 AMI 映像(例如this one http://bitnami.com/stack/django来自比特纳米)。
配置前端服务器以侦听端口 80,然后将请求代理到您的 django 应用程序。这里常见的堆栈是 nginx + Gunicorn + Supervisor,以及这篇博文 http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor/解释了如何设置它(以及虚拟环境,这始终是一个好习惯)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)