所以,我已经看过堆栈溢出其他网站,但还没有能够解决这个问题:因此发布这个问题!
我最近开始学习django ......现在我正试着在ec2上运行它 .
我有这种格式的ec2实例:ec2-xx-xxx-xx-xxx.us-west-2.compute.amazonaws.com我运行了django应用程序 . 我更改了此实例的安全组以允许http端口80连接 .
我尝试通过以下方式运行django app: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方面没有任何问题,我打开了另一个终端窗口,然后进入实例并对localhost:8000 / admin进行了curl GET请求,该请求已成功完成 .
我哪里错了?将不胜感激任何帮助!
2 回答
您正在端口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映像(如bitnami中的this one) .
配置前端服务器以侦听端口80,然后将请求代理到django应用程序 . 这里的常见堆栈是nginx gunicorn主管,而this blog post解释了如何设置它(以及一个总是习惯进入的虚拟环境) .
确保在Django project / app / settings.py脚本的ALLOWED_HOSTS部分中包含您的IPv4公共IP地址...