Теперь нельзя выставлять тип контента!

nickolay nginx-forum at nginx.us
Sat Sep 21 17:40:04 UTC 2013


Здравствуйте,

Обновили nginx до версии 1.5.5 и perl-скрипты перестали отдавать файлы, в
лог выпадает следующее:
"header already sent while reading response header from upstream"

Нашёл, что всему виной вот этот коммит:
http://hg.nginx.org/nginx/rev/03ff14058272
Он проверяет, если заголовок уже отправлялся, то это ошибка.

Но как быть? Нам перед тем как сделать внутренний редирект обязательно нужно
установить MIME-тип, так как редирект будет на файл без расширения, и если
не установить явно тип контента, то nginx сам установит
application/octet-stream.

Устанавливаем из скрипта тип контента таким образом:
$r->send_http_header("$mime")

Если убрать эту строку, то всё работает, но отдаётся с
application/octet-stream.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243030,243030#msg-243030



Подробная информация о списке рассылки nginx-ru