我刚刚开始使用EC2,我已经下载了一个我在本地计算机上启动的git repo,因此我知道它可以从那里运行服务器,当我运行我的服务器时它似乎有效我运行的EC2实例的服务器,但出于某种原因,当我访问该实例的弹性IP地址时,我得到一个页面未找到。对于为什么会这样的想法?
所以,我现在已经开始使用nginx了,并按照这里的说明创建了一个conf文件:https://code.djangoproject.com/wiki/DjangoAndNginx如下:
server {
listen 80;
server_name ec2-54-242-149-154.compute-1.amazonaws.com;
access_log /var/log/nginx/USBag.access.log;
error_log /var/log/nginx/USBag.error.log;
location /basicMap/ {
alias /home/www/ec2-54-242-149-154.compute-1.amazonaws.com/basicMap/;
expires 30d;
}
location / {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8080;
}
}
basicMap是我已经在我的django应用程序中定义的地方,链接的ec2 ip是我的服务器运行的地方。我很难找到关于如何继续或如何确定我的conf文件是否正确的文档。但是,使用标准的python manage.py runserver不起作用。关于如何进行的建议?
答案 0 :(得分:0)
有很多关于在那里设置生产django服务器的信息,我将在下面给你我个人的偏好,但在此之前让我们备份,看看我们是否可以得到任何回复来自生产服务器。
要在EC2实例上启动开发服务器:
manage.py runserver 0.0.0.0:8000
该命令将导致runserver绑定到所有接口并将文件提供给外部世界。你永远不会想在开发之外做这件事,但这是一个很好的方法来测试你的django应用程序是否在复杂化之前设置。现在尝试点击您的EC2实例,看看您是否收到回复。
如果仍然无法正常工作,请确保允许到服务器端口的传入连接(上述命令中为8000,实时为80)。您可以使用netcat(nc -l)测试是否打开了端口。
如果您对自己的应用设置感到满意,我建议您使用nginx作为前端网络服务器和gunicorn作为您的django网络服务器。您可能希望为生产设置设置virtualenv,supervisord等(这是一个教程:http://senko.net/en/django-nginx-gunicorn/),但所有这些都取决于项目的具体情况。