Мне нужно разместить приложение SaaS на основе поддомена на нескольких серверах. Серверы - xx1.example.com, xx2.example.com и так далее. Я хочу разместить на этих серверах несколько сайтов yyy.example.com.
Поскольку сайты создаются «на лету», мне также необходимо иметь возможность настраивать записи DNS «на лету». Зона с подстановочными знаками DNS на самом деле не масштабируется, так как в конечном итоге я перерасту первый сервер и мне нужно будет отправлять новые экземпляры на другие машины. Поэтому мне нужно указать конкретный субдомен на определенный IP-адрес.
Я поискал облачные DNS-сервисы на основе API (что было бы здорово), но они кажутся невероятно дорогими для моих нужд (много экземпляров с низким объемом). У Rackspace есть бесплатная служба Cloud DNS, но она охватывает только 500 зон, и техническая поддержка сообщила мне, что они переписывают API, поэтому я хотел бы пока отказаться от их службы.
Поэтому я решил настроить свой собственный DNS-сервер для этих зон. Отсюда вопросы: какое хорошее программное обеспечение DNS-сервера для этой конкретной потребности позволяет мне создавать зоны без перезапуска?
Какие-либо предложения? Спасибо!
Если все записи, которые вы будете добавлять, являются субдоменом определенной зоны, вы можете легко настроить привязку для динамических обновлений. Затем просто используйте nsupdate для отправки обновления в зону.
Это должно работать нормально, если все новые записи являются записями в существующем домене. Если вам нужно динамически добавлять другие домены, это не особо поможет.
// zone config
// using ip only for authentication, should really use hmac auth
zone "example.com" {
type master;
file "/etc/bind/dyn/example.com.dns";
allow-query {any;};
allow-update {
127.0.0.1;
192.0.2.0/24;
};
};
Обновить скрипт с помощью nsupdate.
#!/bin/bash
record=yyy.example.com
(
echo "server xx1.example.com"
echo "zone example.com"
echo "update delete ${record} A"
echo "update add ${record} ${ttl} A 192.0.2.1"
echo "send"
) | /usr/bin/nsupdate
bind
может (повторно) загружать файлы для отдельных доменов без перезагрузки целиком.
я использую myDNS Он отлично работает и прост, он также может легко работать с BIND. Есть и другие, вроде PowerDNS и другие.
либо используйте интерфейс bind rndc, либо то, что я предпочитаю: используйте PowerDNS
Обновления djbdns полностью прозрачны - без прерываний - и структура «файл зоны» идеально подходит для модификации и автоматизации по сценарию. Формат записи полностью не похож на BIND, но его не так сложно понять, как кажется на первый взгляд. Настоятельно рекомендуется.