В жизни каждого админа случаются моменты, когда нужно сильно и за недорого. Часто такие задачи способствуют личностному росту и становятся первым шагам к жестким извращениям. Сейчас я попробую описать именно такой случай.
Задача
Нужно опубликовать информацию на 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 запись:
В итоге ресурсы вашего сайта закешированыне CDN-1 раздаются не напрямую посетителям сайта с серверов CDN-1, а сначала проходят в кеш CDN-2 в примере Cloudflare, и потом из кеша Cloudflare уже отдаются посетителям сайта.
Эта статья описывает только одну задачу из длинного списка странных решений публикации информации на web*сайте при необычных условиях.