Знаете ли Вы, любители «всякого интересного», что если: Ваш сайт находится на хостинге TimeWeb (из списка «Рекомендованных хостингов») и если Вы включаете CDN в попытке ускорить сайт на Битрикс, то вы сделаете его только медленнее. По крайней мере так будет еще минимум 1 неделю.

По крайней мере так будет еще минимум 1 неделю.

А началось все с того, что мне захотелось оптимизировать скорость загрузки нашего собственного сайта (что в свою очередь было навеяно статьей про важность скорости загрузки сайта). Все-таки ресурс студии должен быть образцом во многих отношениях, в том числе и по скорости работы.

Большинство мер, помогающих сделать сайт быстрее, которые делают все (или почти)

  • Везде где нужен кеш — он включен;
  • Сайт многократно прогонялся по монитору производительности;
  • По совету монитора производительности были созданы пара индексов на базе данных (а еще пара была неэффективной и создана не была);
  • Включено объединение CSS/JS;
  • Включен CDN.
Поковырявшись в отладчике Google Chrome, нашел пару CSS и JS которые не объединялись с остальными файлами. Эта проблема была исправлена быстро.

Напоследок решил посмотреть что выдаст анализатор скорости загрузки сайта sitespeed.ru. А выдал он довольно интересные факты, на которые я как-то не обратил внимание находясь в отладчике Google Chrome.


Время загрузки Объем загружаемых данных
Первый заход 30.081s 4 963 kb
Повторный заход 22.657s 3 644 kb

Замечу, что при нашей скорости интернета загрузка страницы занимала не больше 3х секунд, но не у всех такой быстрый интернет.

Проблему с загружаемыми данными при первом заходе победить несложно — больше всего занимала графика в слайдере. Сжали картинки посильнее и получили выигрыш почти в 2 мегабайта. Дополнительно создали сжатые (.gz) копии сторонних шрифтов.

А вот вторая проблема большого объема скачиваемых при повторном заходе данных — это уже совсем другое. Действительно, если посмотреть в Google Chrome — при повторном открытии картинки с CDN браузер не кешировал ее, а каждый раз скачивал заново.

Ошибка в кэше браузера

При выключенном CDN — все кешировалось.

Ускорение сайта через настройку кэша на хостинге

Как может помочь хостинг

Далее следуют почти 2 недели переписок с поддержкой 1С-Битрикс и TimeWeb. Как они играли мной в пин-понг пожалуй опущу. В результате всех терок выяснилось следующее:

  1. CDN при забирании статики с вашего сайта запоминает отдаваемые сервером заголовки ответов и при отдаче файла с обратно заголовки в точности повторяет;
  2. сервер ТаймВеба отдавал для картинок 2 неверных заголовка;
  3. браузер при получении файлов с CDN почему-то фиксировал эти заголовки и т. к. они были неправильные — не кешировал файлы.
К проблемным заголовкам относились вот эти:
  • Last-Modified: Thu, 20 Jun 2013 09:51:24 GMT;
  • Last-Modified: 1371725085 (дубль с неправильным синтаксисом).
После исправления этих заголовков (ТаймВеб убрал неправильный) появился вот такой:
  • Cache-Control: no-cache.
Он тоже был удален поддержкой хостинга.

После этого мы обновили дату изменения всех файлов в папке /upload/ и /bitrix/templates/наш_шаблон_сайта/ и о чудо! Картинки с CDN стали кешироваться.

Описанные меры (сжатие картинок и кеш статики браузером при получении с CDN) позволило прийти к следующим результатам (по данным все того же sitespeed.ru):

Время загрузки Объем загружаемых данных
Первый заход 13.998s 2 267 kb
Повторный заход 8.97s 1 362 kb
Внимательный читатель спросит меня, а как же к названию поста относится все что я написал? А очень просто:
  1. Поддержка TimeWeb пообещала удалить неверный заголовок Last-Modified на всех своих серверах.
    «Мы внесли сейчас изменения и подождем неделю, если проблем не возникнет, изменение внесем полностью.»— TimeWeb.
  2. Поддержка TimeWeb пообещала удалить неверный заголовок Last-Modified на всех своих серверах.
    «Сейчас эта конфигурация только для вашего сайта. Но мы проанализируем текущую конфигурацию nginx на всех серверах на счет подобных изменений заголовков.» — TimeWeb.
Получается что все сайты, которые лежат на TimeWeb и включили функцию CDN скоро получат такую работу системы, какой она должна быть — с кешированием картинок.

Для тех, кто не хочет ждать, алгоритм действий следующий:
  1. Просим поддержку TimeWeb удалить Last-Modified.
  2. Когда это сделано, проверяем не появился ли заголовок Cache-Control: no-cache и просим удалить его если появился.
  3. Обновляем дату модификации всех статических файлов на сайте (выполняем в консоли команду find. -exec touch {} \; находясь в папках /upload/ и папке шаблона сайта).
Как мы в очередной раз убедились у TimeWeb адекватная служба поддержки, которая признает ошибки и исправляет их (а ошибки делают все люди). Поэтому не стесняйтесь к ним обращаться.

Ну и напоследок я провел тест с выключенным CDN.

Время загрузки Объем загружаемых данных
Первый заход 13.757s 2 174 kb
Повторный заход 2.585s 37 kb

Здесь меня ждал неожиданный результат — время загрузки и загруженные данные при повторном открытии уменьшились!!! Как так?

Объяснение этому чуду было следующее: на CDN не отправляются сжатые (.gz) копии стилей/скриптов/шрифтов. А жмутся через gzip они очень хорошо.

Какой вывод мы сделали

Следить за размером ваших страниц и файлов нужно — само все хорошо не будет.

К чему пришли:

  • починили кеширование картинок с CDN на TimeWeb;
  • отказались от использования CDN до тех пор пока туда не будут отправляться сжатые копии статических файлов (На основе информации из данного обращения была создана заявка в отдел разработок. Номер обращения: 40808.).

Оцените статью
05.07.2013
Понравилась статья?
Поделитесь ссылкой с друзьями и коллегами!

Статьи по теме

Биллинг ИТ-компании на laravelОбычно мы рассказываем, как принесли пользу клиенту. Но сегодня у нас будет особый разговор, ведь заказчиком биллинговой системы ИТ-компании была… ИНТЕРВОЛГА! ...
Почему мы рекомендуем начинать с внедрения базовой версии b2b-платформыК нам в компанию ИНТЕРВОЛГА часто обращаются клиенты с заявками на внедрение личного кабинета дилера с длинным списком желаемых функций. Однако мы рекомендуем н...
Функция b2b-платформы — отправка рекламаций в CRMОптовые покупатели — ключевой сегмент экономики торгово-производственного предприятия, и их удовлетворённость напрямую влияет на успех бизнеса. Новый функционал...
Как b2b-платформа передает в 1С данные по новым контрагентам В этой статье мы расскажем, что происходит после того, как клиент зарегистрировал в б2б-кабинете новое юридическое лицо и сделал заказ, а также покажем, как...
Автоматизация и оптимизация бизнес-процессов — лонгрид, чтобы не запутаться Статья будет полезна всем, кто хочет улучшить эффективность своего бизнеса или узнать больше о возможностях автоматизации бизнес-процессов для повышения ко...
10 обязательных задач поддержки сайта на БитриксСтатья посвящена организации поддержки сайтов на Битрикс. Здесь не только про решение технических проблем и устранение багов. Здесь про развитие живых проектов...
Мы работаем по одному из двух форматов:
  • аренда команды (от 2 человек, не менее 3 месяцев);
  • итерации с фиксированной ценой (1-3 месяца длительностью).
ИНТЕРВОЛГА предоставляет:
  • регулярные онлайн-планерки с заказчиком;
  • квалифицированных специалистов;
  • организованную команду (находятся в одном помещении, что упрощает решение рабочих вопросов);
  • полную прозрачность и регулярность отчетов о результатах.
Ключевые услуги:
  • нагруженный интернет-магазин;
  • личный кабинет;
  • оптовые продажи — B2B-платформа;
  • маркетплейс;
  • технический аудит сайта;
  • Битрикс24 — корпоративные HR-порталы;
  • Битрикс24 — построение CRM-системы;
  • Битрикс24 — личные кабинеты сотрудников;
  • Битрикс24 — аудит портала;
  • 1С — интеграция с другими системами;
  • 1С — доработка системы;
  • маркетинг — комплексное интернет-продвижение;
  • маркетинг — продвижение для B2B.
Хотите получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишитесь на рассылку — спамить не будем