Nginx提供Django静态文件吗?
我有两个EC2实例 我正在使用一个来部署Django,使用Gunicorn 另一个用于使用指向Gunicorn服务器的Nginx服务请求 现在,通常我会运行collectstatic,静态文件的Nginx配置将如下所示: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
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)耦合