Назад | Перейти на главную страницу

Получение ошибки «403 доступ запрещен» вместо обслуживания файла (с использованием django, gunicorn nginx)

Получение ошибки «403 доступ запрещен» вместо обслуживания файла (с использованием django, gunicorn nginx)

Я пытаюсь использовать nginx для обслуживания частных файлов из django. Для настроек X-Access-Redirect я следовал следующему руководству

http://www.chicagodjango.com/blog/permission-based-file-serving/

Вот файл конфигурации моего сайта (/ etc / nginx / site-available / sitename):

server {
    listen 80;
    listen 443 default_server ssl;

    server_name localhost;

    client_max_body_size    50M;

    ssl_certificate /home/user/site.crt;
    ssl_certificate_key /home/user/site.key;

    access_log /home/user/nginx/access.log;
    error_log  /home/user/nginx/error.log;

    location / {
           access_log /home/user/gunicorn/access.log;
           error_log /home/user/gunicorn/error.log;
           alias /path_to/app;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Host $http_host;
           proxy_redirect off;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Scheme $scheme;
           proxy_pass http://127.0.0.1:8000;
           proxy_connect_timeout 100s;
           proxy_send_timeout 100s;
           proxy_read_timeout 100s;
    }

    location /protected/ {
            internal;
            alias /home/user/protected;
    }
}

Затем я попытался использовать следующее в моем представлении django, чтобы проверить загрузку:

response = HttpResponse()
response['Content-Type'] = "application/zip"
response['X-Accel-Redirect'] = '/protected/test.zip'
return response

но вместо загрузки файла получаю:

403 Запрещено
nginx / 1.1.19

Пожалуйста, обратите внимание: Я удалил все личные данные из файла конфигурации, поэтому, если есть какие-либо очевидные ошибки, не связанные с моей ошибкой, вероятно, поэтому.

Мой журнал ошибок nginx дает мне следующее:

**2012/09/18 13:44:36 [error] 23705#0: *44 directory index of "/home/user/protected/" is forbidden, client: 80.221.147.225, server: localhost, request: "GET /icbdazzled/tmpdir/ HTTP/1.1", host: "www.icb.fi"**

Вы должны использовать root:

location /protected/ {
        internal;
        root /home/user;
}

вместо твоего alias:

location /protected/ {
        internal;
        alias /home/user/protected;
}