Комментарии 13
А потом раздать эти сервера через cloud flare, чтоб наверняка :)
Спасибо за статью, про geoDNS интересно.
А про свой CDN: теперь обвешать это все мониторингами, написать инструкции как это обслуживать, добавлять сервера, оплачивать хостинги, назначить ответственных. Реализовать инвалидацию, конвертацию картинок. Посмотреть сколько времени в месяц это все жрет, влететь пару раз на "забыли оплатить сервер", "у хостера технические работы". И понять что не нужен тебе свой CDN сервер.
Сертификаты копировать не обязательно. Каждый может сервер получать свои сертификаты через acme.sh, когда вы делаете авторизацию через dns. Потом их надо установить и перезагрузить nginx. Это автоматизируется командой: acme.sh --install-cert -d <domain> --key-file /etc/nginx/ssl/certs/<domain>.key --fullchain-file /etc/nginx/ssl/certs/<domain>.cert --reloadcmd "sudo /usr/sbin/service nginx reload" пути внутри nginx произвольные. главное чтоб в конфигах домена вы их правильно указали.
С такой командой acme.sh будет автоматом проверять обновление сертификата и перезагружать его внутри nginx, когда сертификат обновится.
И есть еще один вопрос, который вы не рассмотрели. Вы заказали 5 серверов чтобы каждый регион ходил через свой сервер, однако отказ любого из серверов оставит пользователей без контента. По хорошему надо какие-то heartbeat запросы отсылать и налету конфигурировать clouddns чтобы при падении сервера автоматом перенаправлять трафик.
Мы для Guru Maps настроили кэширующиего worker-a на cloudflare и он заменил нам все сервера во всех регионах. Cloudflare стал edge cdn и дальше усложнять архитектуру не пришлось.
Вангую, что работать будет как-попало. Недаром, серьезные люди не полагаются на DNS, а один IP анонсируют в куче точек присутствия одновременно, чтобы балансировать на уровне маршрутизации пакетов, а не DNS запросов.
Кажется, если делать из говна и палок без ресурсов серьезных людей, то хотябы надо 2-х шаговый алгоритм реализовать, чтобы на первом шаге, балансируя по DNS, запрос шел на скрипт-распределитель (у которого единый url глобально), который, в свою очередь, уже будет, проверяя по базе ip, отдавать 302 на что-то вроде europe.cdn.nashsait.org, чтобы "неправильный" роутинг по DNS приводил лишь к первому медленному запросу, а не всем в рамках сессии
только хороший cdn еще и от доса защищает и просто попыток взлома, брутфорса и дает консоль для формирования рулов.
Как сделать и настроить свой CDN