Pull to refresh

Comments 49

Можно ли настроить модуль для работы со своим CDN?
Нет. Это — именно простая в подключении услуга. Без каких-то серьезных настроек.

Подразумеваем, что если пользователь знает, что такое CDN и может подключить свой, то может это сделать своими силами.
«Однако абсолютно очевидно то, что поисковые роботы, индексирующие сайты в интернете, не дождавшись загрузки страницы, не будут учитывать ее в общем поисковом индексе. „
Это-то тут причем? Если Вы говорите об оптимизации раздачи статики, то на скорость генерации страницы она влияет очень опосредовано.

В целом — игрушка интересная, но практической пользы для основной массы проектов я не вижу.
Практическая польза — огромная.

Прямо сейчас смотрю на большом контентном портале. Chrome, инструменты разработчика, Ctrl-F5, время onLoad:

— без CDN: 10.43 с.
— с CDN: 4.14 c.
Не великовата разница то?
У вас явно проблемы с основным сервером.
Не у меня.
Я взял один из «тяжелых» клиентских сайтов.
Для большого контентного портала предпочтительнее сделать свое решение — надежнее, управляемее. А для небольших сайтов это просто игрушка. К тому же это имеет значение только для первой загрузки страницы, потом все берется из кэша.
PS Пардон, не туда написал.
Первая загрузка как раз часто и определяет, остается ли клиент на сайте.

Мы можем долго теоретизировать, но у нас уже есть несколько десятков отзывов от живых работающих проектов, которым эта штука помогает и нравится. :)
Не вопрос — это как раз та прослойка, которой нововведение может быть интересно, тем более что бесплатно. А что, кстати, будет при превышении лимита траффика?
Прослойка? Это — два дня услуга в паблике. Думаю, на следующей неделе будет больше 1000 сайтов. А в перспективе — те самые 70 000. :)

При превышении отключится замена ссылок. При наступлении нового месяца можно включить обратно. Но установленных нами лимитов хватит абсолютному большинству сайтов.
Ок, а теперь давайте посмотрим на ситуацию так: вебмастер перепрописал все ссылки на CDN. А потом в пятницу вечером (по закону бутерброда) траффик CDN закончился. И все его вручную измененные ссылки разом перестают работать. Соответственно вопрос: вебмастер предупреждается хоть как-то о приближающемся?
Вы не поняли. Вебмастер ничего сам руками не меняет. Все само. И при выключении обратно — тоже само.
Т.е. в CDN выносятся только ссылки, генерируемые Битриском? js/css и все?

Но тогда обычный minify или собственная его реализация будет гораздо эффективнее.
на самом деле есть более интересные решения например cloudfare.

вообще CDN очень сложная штука, с большим количеством ньюансов и как мне кажется окупается на глобальном масштабе. Так как большинство сайтов в Рунете расчитаны на Рунет( языковой барьер), то немного это немного спорное решение ставить прослойку которая очень часто работает как black box. Как експайрить документы, на каких заголовках она работает, как обрабатывает etag, cache-control, edge-control мне из поста совсем не понятно.
Cloudflare проще и может и замедлить сайт, так как проксирует через себя все, включая динамику. А точек присутствия в России не имеет.
Согласен со всем кроме проще. Она как раз наоборот на порядок сложнее, и фич там в разы больше.
Что будет, если халявный трафик кончится? Копии статических файлов остаются на сервере со скриптами? Уведомления администратору сайта о достижении лимита есть какие-нибудь?

А так… лишь бы не глючило.
Траффик кончится — все вернется как было, будет раздаваться с локального сервера. С него, конечно, ничего не удаляется, а только кэшируется на узлах CDN.

Данные по потреблению траффика показываются в админке.
Ну насчет «максимум в 6 потоков» это вы загнули, конечно. Это вовсе не аргумент в пользу CDN, для этого легче насоздавать static-1.domain.ru… static-n.domain.ru, повесить на них nginx без логирования, и не надо всех этих сложностей.

И вот интересно, для среднестатистического сайта без тяжелого контента, каков будет выигрыш CDN по сравнению с таким простым решением? Стоит ли этот выигрыш всего того дополнительного геморроя, который внедрение CDN с собой принесет?
Расскажите, пожалуйста, какой-такой геморрой несет для клиента (!) все то, что описано выше в статье?
Не прочел ваш комментарий выше (Траффик кончится — все вернется как было), когда писал свой комментарий, это, конечно же, меняет дело, и претензий к вашему решению теперь нет. А имел ввиду я именно этот (потенциальный) геморрой.

И все же, насколько сильно возрастает эффективность при использовании CDN в противовес нескольким поддоменам для раздачи статики?

Понятно, что для обычного виртуального хостинга ваше решение реализовать заметно проще, но для любого VPS проблем с созданием своих поддоменов в общем-то нет.
Подскажите пожалуйста а как быть с crossdomain.xml?? Для флеша и Unity 3D это вроде как критично. Можно ли будет как нибудь подсунуть этот файл?
Минус поставить конечно же додумались. Но ответить на вопрос нет, ну конечно, а зачем?
Я минус не ставил. Расскажите, пожалуйста, подробнее, что имеется в виду?
Принимайте правила игры. Посмотрите за что в этом хабе плюсуют и минусуют. Похвалил Битрикс — плюсик тебе. Любой неудобный вопрос — минус, чтобы не высовывался.

Относительно вопроса: все должно работать нормально. Поскольку все свои ссылки нужно перепрописывать вручную, то crossdomain.xml просто будет грузиться с вашего сайта и все.
Само собой, если у Вас просто * в качестве домена. Иначе ой.
Кажется с этим будут проблемы… Т.к. ссылки имеют вид http:// домен .(images|css|js).1c-bitrix-cdn.ru/upload/iblock/3b8/3b8389a69ab19c0fb48cd1ec8d42a940.jpg?1351135063
впишите в разрешенные домены "*.1c-bitrix-cdn.ru", должно работать.
Я для обхода ограничения потоков в браузере просто настроил статический поддомен, который расположен там-же где и основной сайт. Плюс при запросе статических файлов nginx обрабатывает конфиг из пары строк, а не простыню регулярок.
Понятно, что проблема количества коннектов решается фейковыми поддоменами.

Но CDN «приносит» контент ближе к пользователю. Это просто настройками не решишь.
У CDN есть и обратная сторона, при каждом коннекте тратится немного времени на поиск ближайшего к пользователю узла. Так во время моего тестирования HostPro CDN загрузка напрямую с моего сервера была быстрее, чем загрузка с серверов CDN для тех пользователей, которые находятся в пределах одной страны с сервером.
Это зависит от устройства CDN. Можно определять ближайший хост к пользователю на сервере на этапе генерации страниц сайта (это очень быстрая операция при правильном подходе). И просто в html вставлять уже готовые ссылки. Но для этого, нужно чтобы CDN сам позволял такое делать и экспортил свои списки для определения узла.
Было бы логичным указать несколько IP для домена и пусть DNS сам выбирает ближайший. При этом выбор кэшируется в браузере, так что с быстродействием здесь все хорошо.

Кстати, сейчас все CDN-ссылки с сайта Битрикса ведут на 1C-BITRIX-CDN.RU, который висит на том же IP что и сам сайт Битрикса, так что для сайта Битрикса CDN сейчас не работает.
Нет, это не выход. Пользователь может использовать публичный ДНС, типа 8.8.8.8
Да, Google DNS данные кэширует, но, с таким же успехом, он может сам делать round robin. Ничего внятного по этому поводу в описании Google DNS я не нашел, думаю, имеет смысл поэкспериментировать.

А как именно, позвольте полюбопытствовать, Вы собираетесь определять ближайший сервер на этапе генерации страниц? По географии IP-адресов?
round robin к cdn не имеет отношения, это скорее распределение нагрузки.

Определять да, по географии. или с помоью списков адресов, или через сервисы типа maxmind geoip, по сути, по тем-же правилам, которым это делает центральный узел CDN. И занимаеться этим может не сайт, а nginx, а сайт уже получит заголовок с кодом страны или даже сразу нужным субдоменом и будет подставлять в ссылки на статику.
Ну, вы бы хоть проверяли, прежде чем писать, а?

1c-bitrix-cdn.ru и *.1c-bitrix-cdn.ru — это совсем разные вещи.

И на нашем собственном сайте включен ровно тот же механизм для CDN, который работает у клиентов.
Ок, насчет *.1c-bitrix-cdn.ru не досмотрел, пардон.

Если ссылки не нужно править руками, то как ссылка, прописанная руками в шаблоне (логотип на вашем же сайте)
/bitrix/templates/1c-bitrix/images/1c-bitrix-logo.gif
трансформируется в
www.1c-bitrix.ru.images.1c-bitrix-cdn.ru/bitrix/templates/1c-bitrix/images/1c-bitrix-logo.gif
?
Попробовали на своих проектах: даже на малых ненагруженных проектах скорость загрузки страницы возрастает почти в два раза, на нагруженных, я думаю, будет еще выше.

До появления CDN думали использовать собственные модули ускорения или недавно вышедший модуль для апача, но теперь это не столь актуально

Очень крутая штука, фактически, новый стандарт для сайтов. Респект, ребята! Молодцы!

Осталось добавить слияние и компрессор js, компрессор html и css, ресайз картинок (подстраховаться от масштабирования средствами html) и… вроде все, арсенал оптимизации реализован в полном объеме.
UFO just landed and posted this here
Это зависит от того что вам интереснее — сэкономить денюжку за CDN или выстоять DDOS.

Кстати, при большинстве DDOS-атак CDN-то как раз не поможет — вредоносные запросы будут направляться на основной домен, а не на CDN и все.
UFO just landed and posted this here
В том-то и дело что боты — не обычные браузеры, никакого смысла (если нет доп. условий) дергать что-либо со сторонних серверов.
Сомнительно. CDN ведь тут только для статики. Если ddos сложит вам сайт, то и статика отдаваться не будет. Да и боты вряд ли буду запрашивать статику.

Разве что цель, конкретно слить вам трафик, тогда можно хоть на хабр вашу картинку с cdn вставить, если там защиты по реферреру нет.
UFO just landed and posted this here
Как работает механизм создания кэша в CDNVideo?
1. Приходит запрос от браузера в cdn, cdn видит что картинки ещё нет в кэше, тащит её с сервера, сохраняет у себя и первый раз проксирует клиенту, то есть первый раз всегда дольше чем обращение напрямую к сайту? И как кстати именно отдаёт браузеру первый раз картинку, закачивая себе и выдавая клиенту, или сразу отдаёт браузеру 301 редирект и уже не дожидаясь ответа браузера CDN сама в фоне закачивает?
2. Или есть какой-то механим создания «горячего» предварительного кэша через API/rsync?

Ну и главное — поисковые системы. Они любят когда видят что картинки находятся на самом сайте, а не на поддоменах/cdn. Соответственно нужен механизм отдачи поисковикам ссылок на оригинальные картинки, посетителям — на cdn.
UFO just landed and posted this here
При ранжировании учитывается количество релевантных запросу картинок на этом домене. Если всё время отдавать страницу с картинками CDN, то во-первых это будут дубли (которые как известно нехорошо), во-вторых могут выпасть из индекса картинки на сайте, которые там были, и как следствие — они перестанут находится с помощью поиска картинок с галочкой «на сайте», что в свою очередь немного влияет на поисковое ранжирование.
С другой стороны — отдача поисковикам родных картинок сайта, а всем другим — cdn, называется клоакинг (подмена содержимого страниц). но думаю в этом случае не может быть санкций.

Но в принципе если CDN имеет запись в cname и является поддоменом (у битрикса не так), то в поиске картинки будут находится, просто будут дубли и «мигания» этих дублей.
Поставили новый шаблон на сайт, там было включено ускорение, ускорение отключили, кеш почистили, теперь не старого ни нового, вместо старого индексная страница только тянется без стилей.

Все шаблоны рабочие.
Sign up to leave a comment.