С одной стороны очень важно, чтобы продукт быстро сгенерировал страницу и передал ее пользователю, по возможности в сжатом виде. Но получая страницу, браузер будет запрашивать и получать картинки, стили и другие элементы страниц. А пользователь оценивает загрузку после того, как страница появляется у него перед глазами.
Отрасль придумала массу решений, для ускорения загрузки и компенсации относительно медленных протоколов TCP и HTTP поверх него. Наиболее активно используется keepalive, когда в одном открытом TCP потоке к веб-серверу браузер запрашивает ресурсы страницы, существенно экономя на времени открытия соединения. Так же, очень многое зависит от настройки самого сервере и хостинга. Огромную помощь оказывает NGINX, и за это большое спасибо Игорю Сысоеву.
Но существуют и продукты, которые позволяют ускорять загрузку сайта в несколько раз!
И сегодня я расскажу вам о модуле Web Optimizer для 1С-Битрикс, который вы можете скачать и попробовать через систему обновлений партнерских модулей.
Статья пока техническая и предназначена для технических специалистов. Будьте очень осторожны перед установкой модуля на боевые проекты. Но очень бы хотелось получить объективные оценки, ускоряет ли работу сайта модуль Web Optimizer и каковы ваши впечатления. Пишите, пожалуйста, в комментариях к этой теме!
Итак, начнем
[spoiler]
Разработчиком продукта является Николай Мациевский и компания WEBO Software.
Web Optimizer
Продукт автоматизирует все действия по улучшению клиентской составляющей вашего сайта, что приводит к существенному ускорению загрузки страниц вашего сайта.
Что происходит на самом деле
Web Optimizer работает как очень легкое проксирующее приложение для вашего PHP-сайта: он буферизует выходящий поток информации (или получает его при помощи API самой системы управления сайтом), применяет к нему все возможные оптимизационные мероприятия и выдает ускоренный HTML-код конечным пользователям. Все производимые действия проходят тщательную проверку качества и быстродействия, так что общая нагрузка на сервер не увеличивается. А если дополнительно использовать встроенные возможности серверного кэширования самого Web Optimizer, то серверные издержки можно вообще свести к минимуму и увеличить запас прочности вашего веб-сервера.
Совместимость
Web Optimizer поддерживает все типы PHP-окружения (Windows, LAMP, CGI, mod_php, Denwer, PHP 4, и 5, и 6, и т.д.), а также имеет расширенную обратную совместимость со старыми системами.
Для Битрикс разработан отдельный партнерский модуль, который можно скачать и установить через систему обновлений.
Для этого перейдите в панель управления.
Далее Настройки-Стронние обновления-Добавить модуль.
В строке поиска указываете Web Optimizer и получаете картинку.
Модуль загружаете, а потом устанавливаете как обычный модуль к Битрикс.
Все управлением модулем выполняется в настройках модуля.
Ускорение
Разработчики считают, что Web Optimizer является мощным решением для клиентской и серверной оптимизации. Ими проведено тестирования на базовых установках различных систем, что продемонстрировало среднее ускорение в 150% (2,5 раза), вплоть до 400% (5 раз) в некоторых случаях.
Я нашел на сайте компании даже таблицу сравнения, где можно увидеть и Битрикс 8.5.1
Результаты обнадеживают.
Далее идет список возможностей:
Объединение CSS- и JS-файлов * Десятки JavaScript-файлов объединяются в 1. * Десятки CSS-файлов объединяются в 1. * Различные файлы в кэше для различных браузеров. * Анализируются условные комментарии. * Общие библиотеки и файлы могут быть исключены. * Внутренний код и внешние файлы по умолчанию включены. * Весь код уменьшается и сжимается. Быстрый анализ HTML-документа * Анализ head-секции. * Анализ body-секции. * Возможность отключить проверку содержимого файлов. * Возможность отключить проверку времени изменения файлов. * Использование быстрых алгоритмов вместо регулярных выражений. * Режим «ни единого обращения к жесткому диску». * Раздельные по браузерам или совместные файлы в кэше. Ненавязчивый JavaScript и динамическая загрузка * Скрипты по умолчанию переносятся к </head>. * Скрипты могут быть перемещены к </body>. * Скрипты могут быть загружены по событию onDOMready. * Счетчики могут быть перемещены к </body>. * Рекламные блоки могут быть перемещены к </body>. * Загрузка фреймов может быть перемещена к </body>. * Никаких блокирующих скриптов!* Уменьшение HTML * Простое и быстрое регулярное выражение для HTML-кода. * Комментарии могут быть вырезаны (кроме условных). * Сжатие HTML-кода в одну строку. * Максимальная обфускация (потеря смысла) в исходном коде страницы. * Экономия до 40%. Уменьшение CSS * Для уменьшения применяется CSS Tidy 1.4. * Если нет CSS Sprites и data:URI, тогда CSS-код уменьшается при помощи простого выражения. * Экономия до 50%. Уменьшение JavaScript * По умолчанию используется JSMin (с поддержкой условной компиляции). * При наличии java может быть использован YUI Compressor. * Опционально может быть использован Packer для систем без gzip. * Экономия до 50%. GZIP для HTML-, CSS-, JS-, ICO-файлов * По возможности через .htaccess. * Иначе через PHP (ob_gzhandler) для HTML / CSS / JS. * Статическое сжатие для уменьшения процессорных издержек. * Дополнительная проверка поддержки сжатия через cookie. * Поддержка gzip, x-gzip, deflate, x-deflate. * Поддержка всех типов шрифтов. * Расширенная поддержка старых и ненадежных браузеров. * Экономия до 88%. Оптимизированный .htaccess для Apache * mod_gzip. * mod_deflate (+mod_filter). * mod_mime. * mod_rewrite. * mod_headers. * mod_expires. Клиентское кэширование * На 10 лет для CSS- и JavaScript-файлов, а также для картинок и шрифтов. * GET-параметр и(ли) новое имя файла для сброса кэша. * Полная поддержка кэширования на прокси-серверах. * Опциональное клиентское кэширование HTML-файлов. * Задаваемое время кэширования HTML-файлов. * Условное кэширование (ETag). * Кэширование документов, видео- и других файлов через .htaccess. Серверное кэширование * Статическое архивирование. * Статическое объединение и сжатие ресурсов. * Подготовленный HTML-документ. * Гибкие настройки условий кэширования. * Никакой дополнительной работы со стороны сервера! CSS Sprites (объединение фоновых картинок) * Не более 3 картинок из 100+. * Оптимизация через smush.it. * Изначально не требуется никаких спрайтов. * «Агрессивный» режим для дополнительной производительности. * Возможность исключать любые картинки. data:URI (+ mhtml) * Data:URI до 24 Кб (опционально). * Mhtml до 50 Кб (опционально). * Исключаются файлы .cur, .htc, .eot, .ttf, .otf, .svg. * Mhtml для IE7 и ниже. * Опциональное разделение CSS-файлов. * Опциональная загрузка ресурсного файла по событию DOMready. Параллельные загрузки для статических файлов * HTML-картинки + CSS-картинки. * Более 15 хостов по умолчанию. * Опциональная проверка на доступность хостов. * Требуются только записи в DNS и алиасы в серверной конфигурации. Оптимизация CSS-картинок (через smush.it) * Экономия для PNG-файлов до 30%. * Экономия для GIF-файлов до 60%. * Экономия для JPEG-файлов до 20%. Расширенная совместимость * PHP4/5 — как модуль Apache или CGI. * Протестировано на Denwer. * Протестировано на VPS. * Протестировано на виртуальном хостинге. * Протестировано на выделенном сервере. * Обратная совместимость с PHP4. Автоматическое изменение и обновление файлов * Более 50 поддерживаемых систем. * Простое изменение исходных файлов для статических сайтов. * Дополнительная безопасность при автоматическом обновлении. * Не нужно еще раз загружать и устанавливать приложение. * Все настройки сохраняются. |
Немного картинок о том, как это настраивать.
Да, не забывайте, продукт коммерческий, но вы можете запросить временный ключик и поработать с продуктом, прежде чем принимать решение о покупке.
Список конфигураций
Редактирование конфигурации
Состояние системы
Состояние кэша
Персональные данные
Оптимизация изображений
Коллеги, будет очень интересно узнать ваше мнение о работе продукта.
Я думаю, Николай будет внимательно знакомиться с вашими отзывами.
Я сталкивался с этим продуктом в демо-режиме, проверял сайт на webo.in, получил интересную информацию для размышления.
Думаю, этот модуль привлечёт внимание к тем аспектам оптимизации, на которые раньше не обращалось внимания.
Прааально - многосайтовость. Настройки кеширования устанавливаются только для одного сайта, а у нас их три.
В итоге CSS не дефолтных сайтов исчезает.
Разработчики из WEBO, пожалуйста примите меры.
Модуль отличный, довольны очень, но вот эта неприятность. "Сайт просто щёлкает по глазам" - сказал клиент
Разработчики из Битрикс, напоминаю, у вас также не решён до конца вопрос с многосайтовостью
В принципе Вы и сами я вижу обнаружили проблему:
В настройках указывается всего 1 сайт и пути для него, а при многосайтовости несколько доменов, в разных директориях и следовательно остальные сайты пытаются "оптимизироваться" но у них это не получается.
Двумя комментами ниже, есть пост об ошибке: "Notice: Undefined index: license in /usr/home/xxx/bitrix/components/webo/optimizer/controller/admin.php on line 71
Notice: Undefined index: wss_password in /usr/home/xxx/bitrix/components/webo/optimizer/controller/admin.php on line 270"
Тоже, неожиданно возникла на одном из сайтов, при попытке активировать пробную версию.
А нельзя в продукт добавить настройки и для других сайтов?
Я кстати удивлён, почти не встречал вопросов по настройке многосайтовости на форуме )) Неужели никто не настраивал многосайтовость по второму способу??
Даже по 10 сайтов вешали - проблем нету
Да там куча всего. У нас всё работает, но проблемы возникают. Они есть.
Неудобно. Такие костыли.
И ни каких проблем.
Только без "костылей". Всё по мануалу?
Notice: Undefined index: wss_password in /usr/home/xxx/bitrix/components/webo/optimizer/controller/admin.php on line 270
при попытке сохранить персональные данные.
Настроил в режим работы оптимально, на сайте все поплыло и теперь не могу зайти в панель управления "504 Gateway Time-
Помогло только удаление модуля и компонентов, а затем установка с нуля и настройка модуля по умолчанию.
___________________
Все лицензии распространяются на 1 домен. Если в Битрикс обслуживает несколько доменов, то возможна ситуация, что все закэшированные файлы будут выдаваться с одного - основного домена. Вообще данная ситуация (многодоменность Битрикса) пока детально не изучалась. На движки, которые обслуживают множество доменов, продукт успешно ставился (с теми или иными ограничениями, иногда вообще без ограничений).
У меня здоровый корпоративный сайт разведён по куче доменов 3 уровня (магазин, маленьки промо-сайты направлений и филиалов) это помимо основного.
Лицензируется домен 2 уровня site.ru и я могу в рамках этого домена создать shop.site.ru и demo.site.ru без нарушения лицензий?
Если же присутствуют различные установки Bitrix для этих доменов (т.е. WEBO Site SpeedUp имеет несколько установок), то для каждой установки нужна своя лицензия. Либо лицензия на 1 IP-адрес (но в случае 3 хостов она дорого обойдется).
Можно поподробнее?
Может быть, всплывут нюансы, которые стоит исправить.
конфигурационных режимах:
· Многосайтовость на одном домене. (Старое название: Многосайтовость по
первому способу.) Продукт и все сайты работают под управлением одной копии
веб-сервера Apache.
· Многосайтовость на разных доменах. (Старое название: Многосайтовость по
второму способу.) Каждый сайт работает под управлением отдельной копии веб-
сервера Apache или отдельного виртуального веб-сервера.
Если многосайтовсть на одном домене, то все понятно "ОДНА УСТАНОВКА WSSU"
Но если я настроил многосайтовсть на разных доменах, то что на каждый домен покупать WSSU? Хотя прошу заметить что установка Битрикса одна т.е. ядро одно.
ну разве нельзя обойтись без curl?
Был бы качественный продукт битрикс - не пришлось бы ставить всякие вебоптимизеры
но хотя бы элементарную часть заявленной функциональности делать должен сам битрикс, остальное дело прямоты рук разработчиков сайта и правильного выбора хостинга.
имхо, среднестатистическому владельцу сайта на битриксе, модуль принесет больше вреда, чем пользы.
Есть ли кнопка "Вернуть всё как было"? )
А то какая-то джумла есть, а 1С-Битрикс нет, данное отношение пока отталкивает от модуля
Тем более, что по ключевым моментам отладки ну никакой разницы нет: что у вас WordPress, что Joomla!, что Bitrix - везде клиентская часть одинаково хромает.
А то смешно одеть скелет (API) в смокинг (красивую рекламу) и посадить на трагический велосипед, а затем толкнуть его под горку в ноги тем, кто поверил первой странице Битрикс:
Давно уже пора от анатомического театра перейти к человеческому подходу, на мой скромный взгляд ловца багов в БУСе.
P.S. Трагический велосипед - это принятое в Греции устойчивое выражение, когда сидение снимается и на этот колышек садят кого-нибудь и заставляют ехать.
Ни с того ни с сего.
Fatal error: Call to undefined method compressor_view::ensure_trailing_slash() in www/bitrix/bitrix/components/webo/optimizer/libs/php/view.php on line 28
Работающем и тестовом.
Ни разу полный кеш создать так и не получилось, а следственно так и не смог оценить поможет ли данный модуль...
Продукт нужно настраивать и изучать. Стабильно поднимается только при отсутствии грубых нарушений в проектировании клиентской части (чего сейчас почти нигде не наблюдается). Но заставить работать и ускорять можно для любого сайта без исключения.
Сервер бы проапгрейдили что ли, или кэшей наставили, не знаю. Нас учат как оптимизировать, а у самих "рыльце в пушку"
ОШИБКА HTTP 500
in Application.cpp:239: Directory "/h/briby/htdocs/bitrix/admin" is
writeable by group
[Sat Mar 20 13:08:02 2010] [error] [client 86.57.254.34] Premature end
of script headers: index.php
Я задал права 755 на htdocs/bitrix/admin. Сейчас ошибок нет.
Если найдёте решение, просьба отписаться тут.
После установки и админка и сайт не работают.
кто, что смог сделать?
Заново из бекапа ядро восстановил, в БД нашёл 2 записи, удалил
Ну что за бред, вы сегодня выложили какую-то специальную кривую версию?
У меня так вообще не получилось запустить в работу данный модуль... Он просто тупо отказывается обрабатывать полностью сайт и сделать его кеш...
кто, что смог сделать?
у них же есть Триальная версия, всю систему повесила... удалил вручную папку, заработало...
Очевидно, что продукт работает не у всех. Просто те, у кого он работает(и таких уже тысячи), писать об этом желанием не горят. А те, у кого не работает, помочь исправить возникающие проблемы тоже не сильно жаждут. Так и получается: у кого работает, тот и радуется. А все остальные пытаются тщетно настроить.
Первые подозрения появились, когда не загрузился сайт разработчика)
А расскажите кто-нибудь, за счет чего идет такое ускорение серверной части, если оптимизируется клиентская?
Если не можете настроить, легко можно заплатить за установку и настройку, всё будет в лучшем виде
зы: и да, ускоряет сайт в разы!
Полез в виртуальную машину Битрикса.
Кое-что уже там было сделано, кое-что из доступного поправил.
И действительно.
Тест выдал прирост производительности.
Уверенны про add_header Last-Modified: $date_gmt; ?
Посмотрите заголовки своей статики.