Nginx - 如何使用上游模型提供静态文件

时间:2016-06-09 22:17:09

标签: django nginx

我在我的ubuntu lxc容器中使用gunicorn和nginx在127.0.0.1:8001运行我的django应用程序。

这是host中的nginx conf:

upstream django_app  {
      server 10.0.8.100:8001;
}

server {
        listen  80;
        server_name     mysite.com;

        location / {
                proxy_pass      http://django_app;
                proxy_redirect  off;
                proxy_set_header   Host $host;
                proxy_set_header   X-Real-IP $remote_addr;
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
              }
      }

这是container中的nginx conf:

server {
    listen 80;

    location / {
         proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
         proxy_set_header Host $http_host;
         proxy_pass http://127.0.0.1:8001;
     }

    location /static {
            alias /opt/static_files/django_app/;
    }

}

此配置正常运行。我可以看到我的应用程序从浏览器运行,但静态文件没有加载。我在浏览器中为每个静态文件404 not found

路径/opt/static_files/django_app/是使用collectstatic命令收集所有静态文件的地方。

我找不到用上游提供静态文件的方法。

谢谢

1 个答案:

答案 0 :(得分:0)

/opt/static_files/应与STATIC_ROOT django文件中的settings.py设置相同。

另外,改变:

location /static {
        alias /opt/static_files/django_app/;
}

为:

location /static/ {
        alias /opt/static_files/django_app/;
}