Проблема: При ресайз в процессе создания страницы время ответа сервера увеличивается многократно из-за следующего процесса: 1. Скачивания картинки из CDN; 2. Ресайза на сервере; 3. Загрузки уменьшенной картинки в CDN;
Решение: В модуле cloids есть опция delayed_resize, которая не поддерживается в коробочной версии. Добавить поддержку.
Вводная: Сервер, на котором работает мой сайт, подключен двумя 100 м/битными каналами к двум провайдерам региона (Камчатский край), в то же время канал за пределы региона сильно ограничен по скорости.
Ситуация: - при отключенном CDN местные пользователи мгновенно загружают контент сайта, однако для внешних пользователей он загружается долго. - при включении CDN ситуация прямо противоположная, для внешних пользователей сайт загружается быстрее, однако местным приходится загружать контент через медленный спутниковый канал с внешних серверов.
Суть предложения: В настройках CDN под галочкой "Включить ускорение сайта" сделать ещё одну, например "Не использовать CDN для следующих IP адресов пользователей" и набор полей, в которые можно добавлять подсети, например "77.82.0.0/20", "77.82.48.0/20" и т.д.
Если пользователь приходит с одного из адресов списка - CDN не используется, контент сайта отдаётся напрямую. В противном случае - работает CDN.
Итог: Это позволит более гибко повышать скорость отдачи для сайтов, подключенных к нескольким каналам (провайдерам, сетям).
Наличие любого параметра (?blablabla) у ссылки на подключаемый файл заставляет любое клиентское приложение (браузер, прокси-сервер, мобильное приложение и т.д.) обязательно обратиться за файлом на сервер. Это RFC. Сервер, в лучшем случае ответит "304 Not Modified" (но при этом всё равно дёрнет файл с диска/памяти, чтобы проверить) или же полноценный 200 с полной передачей файла. Ответ сервера в некоторых кешах сохранится, в некоторых (н-р, AppCache) нет.
Соответственно, время модификации, хеш от него или любой другой праметр для cache busting должен быть в имени или пути файла (...template_283cd0022d3edc763e34cc00a91e7e1b/template_283cd0022d3edc763e34cc00a91e7e1b-142712022549372.js), а не в параметре (...template_283cd0022d3edc763e34cc00a91e7e1b/template_283cd0022d3edc763e34cc00a91e7e1b.js?142712022549372).
Проверить очень просто: при повторном открытии страницы сайта на сервер должен идти только 1 запрос - на саму страницу, а все остальные файлы должны браться из кеша браузера.
UPDATE 2015-04-01
Теоретическое обоснование и рекомендации от известных разработчиков:
Never access cached files by using traditional GET parameters (like other-cached-page.html?parameterName=value). This will make the browser bypass the cache and attempt to get it from network.
Очень жаль что bitrix не в полную поддерживает данный сервис, наблюдаются некоторые глюки в работе скриптов, при включении сжатия и оптимизации.
А там и оптимизация и асинхронная загрузка и кэширование на их сервера - JS, CSS, HTML; и CDN и защита от DDOS и много многое другое...
Очень большая просьба оптимизируйте структуру и скрипты под данный сервис.
P.S. Я смотрю добавления emoji намного более светлая идея и проблема, нежели доступность/скорость сайта. Минусуем дальше.
P.S.S И я думал тут не учитывается мнение разрабов битрикса, а только пользователей продукта. Вы конечно не заинтересованы продвигать данный сервис у вас же есть свой CDN, поэтому корректнее было бы пройти просто мимо, да Михаил?
Отключить автоматическое перемещение файлов при добавлении облачного хранилища. Сейчас чтобы этого избежать, пользуемся "советом-лайфхаком" из какого-то форума. Добавляем ограничение 10G на размер, чтобы обычные файлы туда не попадали. Если забыть это сделать, то назавтра все картинки переедут в облако, и могут пострадать SEO-наработки заказчика и визуальное отображение (например, если используется нестандартный ресайзер в публичке)
Случилась с клиентом такая история: сайт отправил в CDN core.js с ошибкой. Как результат - перестала работать админка, CDN не выключить. Если есть техническая возможность проверять корректность системных файлов перед отправкой их в облако - было бы здорово их проверять.
Сделать более тонкие настройки для трафика CDN . В частности необходимо как в поиске сделать сделать возможность настроек (указания) папок исключений (как в поиске), откуда для ускорения сайта не должны использоваться никакие данные. Это очень важно и полезный функционал. Сейчас весь трафик улетаем за 10 дней. На сайте есть библиотека которая может и долго грузиться с сервера, ее надо поставить в исключение. А вот весь обычный сайт на инфоблоках и картинки шаблона естественно должны быть в CDN. CDN
В данный момент в настройках Резервного копирования по расписанию нет возможности выбирать, а что конкретно копируется. В результате, в облако или на локалку копируется весь сайт с гигабайтами картинок и прочими ненужными частями.
Предлагается сделать настройку как при ручном резервном копировании, когда можно выбирать, что копировать, а что исключать. Иначе получается плохая ситуация, когда весь сайт не надо копировать, а только БД / публичку. А в облако уже не получается, так как сайт занимает больше предоставляемого в облаке объема.
Очень не хватает поддержки CDN для второго сайта при многосайтовости, чтобы не было ссылки на первый сайт (проще в настройке и, например, если нельзя светить взаимосвязь).
Сделайте, пожалуйста, чтобы в многосайтовых сайтах максимально-допустимый размер размер данных CDN учитывался исходя из общего количества активных сайтов, а не только как для одного сайта.