Nginx服务Django静态文件?

时间:2015-12-31 07:50:01

标签: django nginx amazon-ec2 gunicorn static-files

我有两个EC2实例。

我正在使用 Gunicorn 来部署Django。

另一个用于使用指向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来托管我的静态文件,但这不是现在的选项。

1 个答案:

答案 0 :(得分:0)

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