Задача: обработка поддоменов одним сайтом.
Решение с использованием BIND и Apache:
1. Настройка DNS
Для разрешения всех имен вида *.example.net нужно в доменной зоне иметь запись типа "A" или "CNAME", например:
example.net. A 1.2.3.1 *.example.net. A 1.2.3.1
Правило * имеет низкий приоритет, что позволяет настроить исключения. Заодно замечу, что у разных хостеров стиль конфигов может отличаться:
example.net. A 1.2.3.1 ftp A 1.2.3.3 www A 1.2.3.1 * CNAME example.net.
2. Настройка веб-сервера Apache
Настроенный DNS направит http-запросы на веб-сервер 1.2.3.1, который может обслуживать много доменов посредством виртуальных хостов. Указать нужный можно в конфиге хоста директивой ServerAlias:
ServerName example.net ServerAlias *.example.net
Фишка
Такая настройка не мешает иметь в другом хосте запись вида:
ServerName example.org ServerAlias org.example.net
Это выделит запросы к org.example.net из *.example.net на другой виртуальный хост.
У хостеров это называется "паркованный домен".
2011-06-24
DNSMASQ вместо BIND
А как быть разработчику, как на РС указать, что имена *.domen.my должны обработаться локальным вебсервером? /etc/hosts такие имена не разрешает. Тут вместо большого BIND удобно использовать лёгкий DNSMASQ с конфигом:
address=/.domen.my/127.0.0.1
Заметки:
- [Dnsmasq-discuss] wildcard records, can it be done?
- Настройка dnsmasq для одновременной работы с DNS провайдера и локальной сети
- Установил dnsmasq
- Добавил конфиг:
interface=lo bind-interfaces no-resolv server=8.8.8.8 address=/.test/127.0.0.5
- В NetworkManager указал 127.0.0.1 для DNS
- Перезапустил службы
2013-06-11
DNSMASQ + VPN
..dnsmasq позволяет указать интерфейс, через который слать запрос..
server=/my.domain/10.10.10.253@vpn_iface server=10.0.20.186
2013-06-11
Комментариев нет:
Отправить комментарий