Django+;Nginx-使用X-Accel-Redirect服务私有文件

Django+;Nginx-使用X-Accel-Redirect服务私有文件,django,nginx,x-accel-redirect,Django,Nginx,X Accel Redirect,我对此还不熟悉,但我对其工作原理的理解如下: 从nginx请求私有文件 nginx将此转发给django django执行它的操作,并返回一个包含X-Accel-Redirect头的响应 nginx看到这个头,并提供文件 我已经这样设置了我的nginx配置: upstream foo_app_server { server unix:/home/project_dir/gunicorn.sock fail_timeout=0; } server { listen 80;

我对此还不熟悉,但我对其工作原理的理解如下:

从nginx请求私有文件

nginx将此转发给django

django执行它的操作,并返回一个包含
X-Accel-Redirect
头的响应

nginx看到这个头,并提供文件

我已经这样设置了我的nginx配置:

upstream foo_app_server {
  server unix:/home/project_dir/gunicorn.sock fail_timeout=0;
}

server {

    listen   80;
    server_name foo.com;

    client_max_body_size 4G;

    location /static/ {
        alias   /home/projec_dir/static/;
    }

    location /media/private/ {
        internal;
        alias   /home/project_dir/media/private/;

    }

    location /media/ {
        alias   /home/project_dir/media/public/;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://foo_app_server;
    }

}
现在,django成功地接收到媒体/私有文件的请求,并成功地将X-Accel-Redirect头附加到响应

对于标题的内容,当请求的路径为
media/private/some/path/to/file.pdf

X-Accel-Redirect:
    media/private/some/path/to/file.pdf
    private/some/path/to/file.pdf
    path/to/file.pdf
他们都给了我404个错误。该文件确实存在

我认为这只是路径问题,头部中的路径与nginx conf中的位置和别名不匹配,但我已经尝试了一段时间,无法获得正确的组合


以前做过这项工作的人能告诉我们nginx到底在寻找什么吗?

您找到解决方案了吗?