Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django应用程序在EC2中运行,但尝试访问弹性URL返回页面未找到_Django_Nginx_Amazon Ec2 - Fatal编程技术网

Django应用程序在EC2中运行,但尝试访问弹性URL返回页面未找到

Django应用程序在EC2中运行,但尝试访问弹性URL返回页面未找到,django,nginx,amazon-ec2,Django,Nginx,Amazon Ec2,我刚开始使用EC2,我在本地机器上启动了一个git repo,因此我知道它可以从那里运行服务器,当我从运行的EC2实例运行服务器时,它似乎可以运行,但由于某种原因,当我访问该实例的弹性IP地址时,我会发现一个页面未找到。你知道为什么吗 因此,我现在开始使用nginx,并按照这里的说明制作了一个conf文件:如下所示: server { listen 80; server_name ec2-54-242-149-154.compute-1.amazonaws.com

我刚开始使用EC2,我在本地机器上启动了一个git repo,因此我知道它可以从那里运行服务器,当我从运行的EC2实例运行服务器时,它似乎可以运行,但由于某种原因,当我访问该实例的弹性IP地址时,我会发现一个页面未找到。你知道为什么吗

因此,我现在开始使用nginx,并按照这里的说明制作了一个conf文件:如下所示:

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应用程序中定义的一个地方,链接的EC2IP是我的服务器正在运行的ip。我很难找到关于如何继续或如何确定我的conf文件是否正确的文档。但是,使用标准的python manage.py运行服务器不起作用。关于如何继续的建议?

关于设置生产django服务器有很多信息,我将在下面告诉您我的个人偏好,但在所有这些之前,让我们备份一下,看看是否可以从生产服务器获得任何响应

要在EC2实例上启动开发服务器,请运行:

manage.py runserver 0.0.0.0:8000
该命令将使runserver绑定到所有接口,并向外部世界提供文件。你永远不会想在开发之外做这件事,但这是一个很好的方法,可以在使事情复杂化之前测试你的django应用程序是否已经安装好。现在尝试点击EC2实例,看看是否得到响应

如果这仍然不起作用,请确保您允许到服务器端口的传入连接(在上面的命令中为8000,一旦激活为80)。您可以使用netcat(nc-l)测试端口是否打开


一旦您对应用程序设置感到满意,我建议您在生产中使用nginx作为前端web服务器,使用gunicorn作为django web服务器。您可能希望为生产设置设置virtualenv、supervisord等(这里有一个教程:),但这一切都取决于项目的具体情况。

您使用什么命令来运行服务器?如果您使用的是默认的“manage.py runserver”,它将只服务来自本地计算机的请求。您应该使用Nginx来服务生产服务器上的请求。