0

我刚开始使用 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 不起作用。关于如何进行的建议?

4

1 回答 1

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/ ),但这一切都取决于具体情况你的项目。

于 2013-02-06T05:32:59.403 回答