Попробовал на хостинге включить gzip-компрессии страниц сайта с помощью указания в .htaccess: php_flag zlib.output_compression On
Заработало, трафика стало гораздо меньше выдаваться. В FireFox всё хорошо смотрится, в links тоже. А вот konqueror получает контент запакованным и распаковывать не хочет. По аське знакомый постучал - через IE тоже самое, запакованный контент. Ну ладно, может konqueror не умеет zip/gzip контент обрабатывать, но зачем тогда он в HTTP_ACCEPT_ENCODING выдает zip и gzip?
Ладно, фиг с ним, отключил обратно. Включил mbstring:
php_value output_handler mb_output_handler
php_value default_charset UTF-8
php_value mbstring.language Russian
php_value mbstring.http_input auto
php_value mbstring.http_output UTF-8
php_value mbstring.internal_encoding UTF-8
php_value mbstring.substitute_character none
php_value mbstring.func_overload 6
Со включенным выходным буфером, получил тот же эффект - работает gzip-компрессия, которую конкверор съесть не может. Если выключить буфер, то выдается предупреждение:
warning: mb_strrpos(): Empty haystack в /home/www/axel/drupal/includes/menu.inc на строк 910.
Кто-нибудь может дать рекомендации по корректной настройке компрессии? Фича полезная, стоит усилий.
/me озадачен и ушёл рыть доки
Комментарии
Компрессия настраивается в apache 2 очень просто и не важно что крутится на веб сервере. В man смотрите mod_deflate, в первом апаче название скорее всего другое. Однако, я использую этот модуль лишь в личных целях, на нескольких "тяжелых" страницах.
Проблема в том, что когда контент gzipованный, то сервер должен сказать
Content-Encoding: gzip
Drupal же перехватывает генерацию заголовков и эту строку не добавляет. Можно, конечно, тупо добавить эту строку в Header("Content-Encoding: gzip"); но! .. Что тогда будет с браузерами, которые не умеют gzip ?
Вообще, когда 4.5 выходил в [url=http://drupal.org/CHANGELOG.txt]changelog[/url] было
Само, судя по всему, оно не включается. А ручага нигде(?) нет. Плохо искал?
--
USU-Lug http://usu-lug.org.ru
А может
{
Header("Content-Encoding: gzip\n");
}
?
Сам еще не проверял, чуток попозже попробую...
--
USU-Lug http://usu-lug.org.ru
1. В .htaccess добавляем
php_flag zlib.output_compression On
2. В includes/bootstrap.inc добавляем
{
Header("Content-Encoding: gzip\n");
}
--
USU-Lug http://usu-lug.org.ru
"но! .. Что тогда будет с браузерами, которые не умеют gzip?"
Гошподя. 21-й век на дворе. Неужели такие еще остались?
Я не знаю...
Но стандарт это учитывает, значит будет хорошим тоном учесть и нам...
--
USU-Lug http://usu-lug.org.ru
К примеру Netcat и Lynx, они текставые, и не все умеют разбирать Gzip
а куда именно в bootstrap.inc ? в какую функцию?
сейчас уже не надо ничего в bootstrap.inc добавлять, это нужно было только для версии 4.5, для 4.7 достаточно строчки в .htaccess
... да и поддержка текстовых браузеров, это, по моему, извращение... а как же тогда флэш-сайты? всё не поддержишь... всем не угодишь...
Кстати умеют. Links во всяком случае умеет gzip.
--
Axel,
Darcs-репозиторий разработок для Drupal