Иногда требуется поднимать много похожих локальных сайтов и не хочется настраивать сервер и хосты для каждого из них. Нам на помощь приходит Dnsmasq. Данное решение я нашел у Дэйва Джеймса Миллера в статье Linux – Installing Dnsmasq for wildcard local domains, перевод которой я вам представляю. Так же в отедельном посте показано как можно настроить nginx для работы сразу с несколькими однотипными сайтами.
Установка и настройка Dnsmasq
Итак, начнем с установки Dnsmasq. Как и в большинстве случаев, это можно сделать одной командой из консоли
1 |
sudo aptitude install dnsmasq |
Создаем файл настроек для нашего wildcard домена
1 |
sudo vim /etc/dnsmasq.d/localhost.conf |
Добавляем вот такой код в созданный ранее файл
1 2 |
address=/localhost/127.0.0.1 listen-address=127.0.0.1 |
Эта инструкция привязывает домены *.localhost к ip-адресу 127.0.0.1
Теперь нам необходимо перезагрузить сервис Dnsmasq для того, чтобы наши настройки вступили в силу.
1 |
sudo /etc/init.d/dnsmasq restart |
Протестировать можно следующим образом:
1 |
nslookup test.localhost 127.0.0.1 |
Вывод команды должен быть приблизительно такой
1 2 3 4 5 |
Server: 127.0.0.1 Address: 127.0.0.1#53 Name: test.localhost Address: 127.0.0.1 |
Настройка DHCP
Следующим шагом будет настройка DHCP для поиска.
1 |
sudo vim /etc/dhcp/dhclient.conf |
Находим такую строку и раскомментируем ее. Если ее нету — то надо просто добавить
1 |
prepend domain-name-servers 127.0.0.1; |
Теперь перезагружаем нашу сеть и тестируем:
1 |
cat /etc/resolv.conf |
Мы должны получить что-то подобное:
1 2 3 |
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 127.0.0.1 |
Убеждаемся что 127.0.0.1 первый в списке неймсерверов. Теперь можно проверить результат работы
1 |
nslookup test.localhost |
Теперь домены резолвятся правильно и мы можем спокойно поднимать несколько сайтов, не настраивая отдельно домены для них. Просто используйте site1.localhos, site2.localhost и т.п.
Pingback: Настройка nginx для большого количества однотипных сайтов под Ubuntu :: Записи веб-разработчика :: PHP, Yii, MySQL, JavaScript, jQuery, Ubuntu()