В жизни каждого админа случаются моменты, когда нужно сильно и за недорого. Часто такие задачи способствуют личностному росту и становятся первым шагам к жестким извращениям. Сейчас я попробую описать именно такой случай.


image


Задача


Нужно опубликовать информацию на web-сайте. Информация должна быть защищена от изменений. Информация размещённая на сайте должна быть доступна вне зависимости от полезной или паразитной нагрузки на web сервер.


Подготовка


Что такое CDN (Content Delivery Network) — это несколько серверов, которые кешируют ресурсы вашего web сайта и отдают потребителям. CDN сейчас имеют ещё много разных возможностей, но смысл именно такой.


Требования к сайту


Сайт будет выдаваться из кеша, по этому динамически генерируемое содержимое на стороне сервера нужно исключить, т.к. выполнятся оно будет на исходном сервере провайдера и смысл использования CDN будет частично утрачен. Также чтобы не получить DDOS по ip, настоятельно рекомендую сменить ip исходного сайта после подключения CDN.


  • В просвещенных кругах такие страницы называются "лендинг", но как происходит с большинством хороших идей, смысл лендингов сильно "разымылся". Изначально этот тип дизайна был придуман в расчёте на большую нагрузку и максимально перекладывал задачу представления информации на клиента. Но тут вебмастера для упрощения своей работы стали натягивать лендинги на многомегабайтные CMS и выдавать заказчику вместо красивого голого HTML на несколько килобайт, черный ящик с мегабайтами кода выполняемого на стороне сервера. *

Содержимое сайта будет отдаваться по протоку HTTPS для того чтобы пользователь в теории мог проверить сертификат и решить что всё хорошо. Но как показала практика, люди смотрят только на цвет замочка в адресной строке броузера.


Большинство CDN предлагают два варианта размещения выдачи через свои сервера ресурсов сайта по HTTPS.


Первый вариант — под сертифкатом исходного сайта. Требуется полноценный wildcart SSL сертификат закрывающий поддомены.


Второй вариант — ресурсы сайта отдаются под сертификатом CDN, замочек в адресной строке броузара у пользователя при этом будет тоже будет зелёный.


Эти возможности как раз и позволяют раздать одну CDN через другую.


CDN -1 — договор на раздачу под сертификатом сайта.
Для этого в коде сайте пути к ресурсам нужно поменять на cdn.вашсайт.com предварительно заведя в зоне DNS домена соответствующею запись CNAME с значением полученными от саппорта cdn.


CDN-2 — например бесплатный тариф cloudflare. После настройки сайта на CDN-1 подключается в штатном режиме с помощью мастера настройки.


После настройки обеих CDN мы видим в настройках DNS cloudflare запись:


image


В итоге ресурсы вашего сайта закешированыне CDN-1 раздаются не напрямую посетителям сайта с серверов CDN-1, а сначала проходят в кеш CDN-2 в примере Cloudflare, и потом из кеша Cloudflare уже отдаются посетителям сайта.


Эта статья описывает только одну задачу из длинного списка странных решений публикации информации на web*сайте при необычных условиях.

Комментарии (2)


  1. keydon2
    03.05.2018 23:16

    Не очень понятно что вы добивались.
    Почему сразу не завести cloudflare без посредника?
    Одна из целей CDN обычно — улучшение времени доступа, а дополнительные узлы не сильно этому способствуют для свежего контента.
    +Это лишняя точка отказа и неоправданное усложнение.
    P.S. Схема отвратительна. Даже graphviz лучше рисует.


    1. MaxStirlits Автор
      03.05.2018 23:48

      Результата два.
      Первый затруднить диагностику, тем кому не нужно всё знать.
      Второй распределение нагрузки. Обновления большой сложности не представляют, если их свети к минимуму. Да и сам текстовый index.html не кешируется.