Странная проблема http gzip - PullRequest
2 голосов
/ 10 апреля 2009

Вот странный:

У меня есть запросы обратного прокси nginx для apache 2 с mod_php.

Пользователь (использующий Firefox 3.1b3) сообщил, что в последнее время у него появляются спорадические "Что должен делать Firefox с этим файлом?" всплывающие окна при обычной навигации. У нас не было никаких других сообщений об этой проблеме, и мы не смогли воспроизвести ее самостоятельно.

Я проверил логи Nginx и apache. Ничего в журналах ошибок, и они оба показывают нормальный HTTP 200 для запроса.

Я попросил его отправить мне скачанный файл, и он сгенерировал HTML, как и должно быть, - за исключением того, что он содержит несколько конечных и начальных байтов.

Последовательность байтов - это магический заголовок gzip: 1F8B08

Вот вводные символы, C-экранированные для удобства:

\x1F\x8B\x089608\r\n<!DOCTYPE HTML ...

и файл заканчивается на:

...</html>\n\r\n0\r\n\r\n

Когда я получаю тот же URL через wget, он начинается с ожидаемого; загадочные байты открытия и закрытия нигде не видно.

Кто-нибудь когда-нибудь видел что-нибудь подобное? Может ли это быть ошибка FF 3.1b3?

Ответы [ 2 ]

1 голос
/ 04 мая 2009

wget не запрашивает сжатый ответ. Попробуйте:

curl --compressed <URL>

Вы также можете попробовать добавить -v для печати заголовков ответа и проверить, что возвращается разумный Content-Type.

1 голос
/ 10 апреля 2009

Никогда не видел такой проблемы, но у меня однажды была проблема с прозрачным прокси-сервером, который заявлял бы веб-серверу, что он может обрабатывать сжатый gzip-контент, когда фактически получает gzip-контент от сервера удалил заголовки gzip, не распаковывая его, и отправил результат в браузер. Поведение, которое мы увидели, было тем, что вы описали: диалог сохранения / открытия файла для того, что должно было быть обычной веб-страницей. В данном случае браузером был IE.

Я не уверен, что ваша проблема связана, но в качестве эксперимента вы можете посмотреть на запросы между прокси-сервером и Apache и посмотреть, являются ли они сжатыми, или отключить сжатие gzip для запросов в Apache. и посмотрите, решит ли это проблему. Если это так, то у вас, вероятно, есть проблема с обработкой gzip в вашем прокси.

...