Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
Nginx提供Django静态文件吗?_Django_Nginx_Amazon Ec2_Gunicorn_Static Files - Fatal编程技术网

Nginx提供Django静态文件吗?

Nginx提供Django静态文件吗?,django,nginx,amazon-ec2,gunicorn,static-files,Django,Nginx,Amazon Ec2,Gunicorn,Static Files,我有两个EC2实例 我正在使用一个来部署Django,使用Gunicorn 另一个用于使用指向Gunicorn服务器的Nginx服务请求 现在,通常我会运行collectstatic,静态文件的Nginx配置将如下所示: server { listen 80; server_name server_domain_or_IP; location /static/ { # my static files directory root /hom

我有两个EC2实例

我正在使用一个来部署Django,使用Gunicorn

另一个用于使用指向Gunicorn服务器的Nginx服务请求

现在,通常我会运行collectstatic,静态文件的Nginx配置将如下所示:

server {
    listen 80;
    server_name server_domain_or_IP;

    location /static/ {
        # my static files directory
        root /home/user/myproject;
    }

   # other locations here
}
当Nginx和Gunicorn部署在同一台服务器上时,此配置运行良好

但是我不知道在这种情况下如何路由静态文件请求,因为Gunicorn服务器不同

应该有某种方法在Nginx服务器上收集我的静态文件,或者将我的请求路由到Gunicorn服务器


我可以使用S3托管我的静态文件,但目前这不是一个选项。

您需要将静态文件保存在运行Nginx的同一台服务器上。因此,最好的选择应该是在两台服务器上跟踪Django项目(也在两台服务器上运行collectstatic,尽管不需要在Gunicorn服务器上运行它)。因此,Nginx将继续在其运行的本地服务器上提供来自Django静态文件的静态文件,对于其他请求,它将向Gunicorn服务器转发请求。

您应该真正使用S3来提供静态文件。使用django存储将文件上传到bucket非常容易。您将降低成本,因为只需要1个ec2实例,而且它可以轻松地与CDN(CloudFront)耦合