#django #nginx #x-accel-redirect
#django #nginx #x-accel-redirect
Вопрос:
Я новичок в этом, но мое понимание того, как это работает, заключается в следующем:
Запросить личный файл у nginx
nginx пересылает это в django
django делает свое дело и возвращает ответ, содержащий X-Accel-Redirect
заголовок
nginx видит этот заголовок и обслуживает файл.
Я настроил свой nginx conf следующим образом:
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 успешно получает запрос на файлы в media / private и успешно присоединяет заголовок 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?
Комментарии:
1. вы нашли решение?