Подскажите как отключить повторное сжатие ответа сервера?
Сервер NGINX, сайт написан на PHP.
Делаю запрос к одному серверу с помощью CURL (точнее запрос клиента отправляю curl'ом другому серверу), ответ приходит уже в сжатом виде, далее сервер повторно сжимает и возвращает ответ клиенту, естественно у клиента ошибка - так как ответ сжат дважды.
AUser0, это если опцию curl установить, то он автоматически расжимает ответ.
Но теперь мой сервер перестал сжимать, то что он делал повторно автоматически
Алексей Денисов, если опцию не указывать - используются все варианты сжатия, а это значит любой вариант сжатия автоматически разжимается. Если указать конкретный вариант сжатия - то полученные данные обязательно разжимаются. Если указавать несколько вариантов сжатия - то полученные данные разжимаются согласно варианта сжатия полученного ответа. Если ваш сервер что-то сжимает - значит это сжимает ваш сервер.
Все верно, так вчера и сделал, но теперь получается обратное, в заголовках есть ответ что данные в gzip, но теперь сервер почему-то перестал сжимать, в итоге клиенту приходит Не сжатый ответ, и так же заголовок что данные в gzip.
Не пойму почему сервер перестал сжимать ответ, заголовки не менялись, как приходит от клиента что может принимать gzip так и от стороннего сервера ответ сжатый и соответственно заголовок тоже имеется что ответ сжат
А зачем ты в браузер отдаешь ответ с указанием алгоритма сжатия? Не делай так, веб-сервер сам все нужное укажет и пропишет, ручками content-encoding прописывать смысла нет.
zkrvndm, я принудительно указал curl чтоб возвращал заголовки, и их же отправляю клиенту, там как раз и указано что ответ сжат, но теперь curl его самостоятельно расжимает, а мой сервер перестал сжимать.
Может попробовать убрать заголовок, но по иде ответ должен быть сжат Один раз...
Алексей Денисов, если ты отдаёшь ответ без изменений, то алгоритм сжатия вообще не надо трогать, отдаёшь ответ в браузер с тем же заголовком кодировки с которым получил его от целевого сайта.
zkrvndm, изначально так и было, и все работало, что случилось пока не пойму,
Но суть в том что клиент стал получать ошибку, точнее игнорировать ответ (приложение для Андроид), по логам определил что ответ у клиента Дважды сжат.
Лог на сервере показал что curl возвращает сжатый ответ, а у клиента ответ уже Дважды сжат
Указал curl опцию чтоб разжимал gzip ответы, в итоге и мой сервер перестал сжимать и отдает ответ без сжатия
Алексей Денисов, тогда разбираться надо на живом примере, либо ты что-то недообъяснил, либо я что-то не понял. Другое дело, что я сейчас не готов на это бесплатно время своё тратить.
Записал в конфиг nginx директиву 'gzip off'
Начало работать, убрал директиву - все работает, не понятно что было, либо клиент чудил там сам себе.
Всем спасибо, сейчас всё работает , хотя все скрипты вернул в исходное состояние.
Можно попробовать повторно сжать с помощью PHP, но дело в том что запросы через один-два идут без сжатия, отсутствует заголовок content - encoding: gzip
Их как раз клиент нормально принимает