nginx не понимает chunked?

Fire Sphere
На сайте с 22.03.2008
Offline
28
1322

Такой вот вопрос меня мучает:

есть некий сайт, впринципе аналог WordPress, который отдаёт текстовые страницы. Не суть важно, а проблема с ним вот какая - страницы, отдаваемые этим сайтом, заполняются "мусором" из цифр. Например в начале страницы идёт 1f97 затем текста нменого, 1f7c опять текст 1fc1 и т.д.

Схема работы сайта: сайт - апач2 - nginx - пользователь. Если открывать этот сайт напрямую в апаче, та-же страница выглядит нормально, никаких цифр. Через nginx как прокси - вылезают эти цифры, хоть тресни. Насколько я помню, это фича у апача называется чанки и она бывает всегда когд запрос был http/1.1 Однако nginx поддерживает 1.1...

Что ещё заметил, и думаю дело именно в этом:

все страницы сайта выдаются через один файл, используюя .htaccess с правилом

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

причём только то, что было выдано через это правило отдаётся так криво. Всё прочее (в обход правила) отдаётся нормально. В том числе другие сайты с простыми реврайтами типа

RewriteRule ^about\.html about.php [T=application/x-httpd-php,L]

RewriteRule ^help\.html help.php [T=application/x-httpd-php,L]

RewriteRule ^sitemap\.html sitemap.php [T=application/x-httpd-php,L]

также выдаются на ура и без вылезания этх цифр. Так в чём-же может быть дело? Никак не могу понять. :( Никто не может подсказать, с чем это связано?

p.s.: Версия апача 2.2.9, nginx 0.7.63. Страницы сайт выдаёт как простой html, без сжатия в gz.

Здесь (http://www.sape.ru/r.b5b0035ccd.php) можно неплохо заработать
M
На сайте с 16.09.2009
Offline
278
#1

nginx работает с бакендом по HTTP/1.0

Таким образом, ваша задача - научить бакенд не

использовать чанки для HTTP/1.0. Документация

апача покажет как.

hint: слать Сontent Length

или

SetEnv force-no-vary

SetEnv downgrade-1.0

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Fire Sphere
На сайте с 22.03.2008
Offline
28
#2

Странно, что пострадал только один сайт из многих, работающих под этой связкой.

Добавил эти SetEnv в .htaccess, мусор исчез. Хотя вставка в код строки типа

header('HTTP/1.0 200 OK');

ни к чему не привела :(

Спасибо за совет. Вобщем-то проблема решена, хотя и странно, что она так выборочно появляется.

H
На сайте с 21.09.2008
Offline
25
#3

Проблема эта обычно в php-коде в header(), который выставляет принудительно HTTP/1.1, исправьте на 1.0 и проблема исчезнет.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий