У нас есть Apache, настроенный на gzip-сжатие html-страниц перед их отправкой в клиентский браузер.
Однако некоторые из наших страниц создаются медленно, и кажется, что Apache держится до тех пор, пока не получит полную страницу, сжимает ее, а затем отправляет в браузер..
На странице есть большие фрагменты (основные важные части), которые на самом деле генерируются и выводятся довольно быстро.
Можно ли настроить Apache для начала сжатия и отправки данных для страницы, как только скрипт начнет что-то выводить? Неужели вы можете предложить какую-либо помощь, как это сделать?
Если нет, можете ли вы предложить какой-либо другой способ заставить работать сжатие gzip на сервере?
Скрипты, которые генерируют страницы, написаны на PHP. Мы используем Apache 2.0 в Linux.
Отправляйте flush () время от времени или после ваших блоков, и если вы не используете obstart (), apache будет отправлять фрагментированные ответы.
Это называется «Ранняя очистка», и в основном это просто запуск flush (); до создания всей страницы. Обычно оптимизированный PHP-сервер, как вы обнаружили, буферизует всю страницу, но преднамеренный вызов flush () отменяет это. На странице советов Yahoo есть дополнительная информация: http://developer.yahoo.com/performance/rules.html#flush
У нас была такая же проблема с серверной частью Perl. Я ищу документы, которые указали мне @ решение. В конечном итоге это было связано с попыткой gzip сжать весь документ для вычисления длины содержимого.
У нас было несколько долго выполняющихся скриптов, из-за которых это разрушало взаимодействие с пользователем - вместо того, чтобы получать вывод постепенно, они ждали 2-3 минуты без активности!
Обновить:
Боюсь, я не могу его найти. Просматривая наши журналы активности, кажется, что я просто отключил его на нашем веб-сервере, а затем переместил интерфейс на основе nginx по этой и другим причинам (он будет архивироваться с помощью gzip с фрагментированной кодировкой без необходимости отправлять длину содержимого)
Попробуйте выполнить обновление до Apache 2.2, более новые версии apache iirc намного лучше справляются с фрагментированием / gzip.