Ситуация такая. У нас есть клиент, у клиента есть проект,
подразумевающий отдачу большого количества статических файлов
(сервис типа fload.ru, rapidshare, etc).
Все файлы хранятся на диске с "левыми" именами, настоящие имена
файлов лежат в базе данных. До того как "лёг" апач под нагрузкой
(что произошло в первый же день :), файлы отдавались следующим
образом: php-скрипт отрабатывал клиентский запрос, доставал имя
файла из базы, и подсовывал его клиентскому браузеру через заголовок
Content-Disposition. Примерно так:
Content-Disposition: attachment; filename=".$t['real_name']
Мы оперативно переложили отдачу статики на nginx, работающий в
качестве фронтенда (настроили internal location, и отдачу заголовка
X-Accel-Redirect), и обнаружили, что при этом теряется
Content-Disposition.
Нельзя ли как-то сделать так, чтобы при отработке X-Accel-Redirect
nginx отдавал клиенту Content-Disposition, пришедший от backend-а?
Долго ли это, и реализуемо ли это вообще? А если не реализуемо - то
может быть есть какой-то неочевидный workaround?
Можно. Прилагаемый патч передаёт "Content-Disposition" и ещё исправляет
ошибку в 0.1.39, из-за которой не передавался "Set-Cookie".
Игорь Сысоев
http://sysoev.ru