nginx+Django FastCGI, реакция на ответ 302 (редирект)

Yuriy Taraday yorik.sar at gmail.com
Thu May 21 04:12:56 MSD 2009


Добрый вечер.

Я использую связку nginx+Django. Цель - заставить приложение работать
в определённом каталоге сервера без изменений. То есть, чтобы запросы
вида http://server/basedir/dir/something приходили в приложение как
/dir/something, а возвращаемые редиректы на /otherdir/thing
превращались в http://server/basedir/otherdir/thing.

При работе через модуль proxy с http-сервером Django, запросы и
http-редиректы обрабатываются корректно без особых настроек:
location /basedir/ { proxy_pass http://127.0.0.1:8000/; }

При работе через модуль fastcgi, чтобы отрезать basedir от пути,
приходится пользоваться alias или rewrite (и передавать соотв. строку
в параметре REQUEST_URI), но при этом если приложение возвращает
ошибку 302 (Temporary moved), то в заголовке Location преобразований
пути не делается, и пользователю в приведённом примере прийдёт
редирект на http://servеr/otherdir/thing.

Хотелось бы узнать, как можно корректно настроить поведение связки
через FastCGI.

С уважением, Юрий.


More information about the nginx-ru mailing list