首页 文章

如何访问在Amazon ec2上运行的django应用程序?

提问于
浏览
3

所以,我已经看过堆栈溢出其他网站,但还没有能够解决这个问题:因此发布这个问题!

我最近开始学习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 回答

  • 9

    您正在端口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解释了如何设置它(以及一个总是习惯进入的虚拟环境) .

  • 0

    确保在Django project / app / settings.py脚本的ALLOWED_HOSTS部分中包含您的IPv4公共IP地址...

相关问题