Создать локальный DNS TLD для разработки
Я много занимаюсь веб-разработкой, в основном RoR и PHP, у меня есть виртуальные машины, в которых хранятся мои среды разработки, и работа с несколькими клиентами на них - это боль. С PHP вы просто создаете подкаталог, но с RoR это немного болезненно.
Я хотел бы создать локальный DNS-сервер, который перенаправлял бы запросы к определенному TLD на мои виртуальные машины / серверы.
TLD будет выглядеть так *.php.dev
пошел бы на php VM и mysql.dev
будет указывать на сервер MySQL и так далее.
Я боролся с локальным сервером BIND, но это настоящая боль. У вас есть легкие альтернативы для BIND, желательно на основе ruby /python.
Я пробовал RubyDNS, но eventmachine каждый раз вылетает.
Последнее, что я запускаю на MacBook Pro с OSX 10.6
Изменить Я пробовал dnsmasq, но я столкнулся с другой проблемой: в OSX есть демон привязки к кешу. Я буду исследовать, как отключить.
2 ответа
Мы используем dnsmasq именно для этого. Вы можете создавать записи CNAME, которые определяют имя, связанное с другим именем, путем редактирования файлов конфигурации; это действительно легко.
Вот кое-что из того, что мы поместили в наш /etc/dnsmasq.conf:
domain=initech.office
cname=vpn.initech.office,balham
cname=mail.initech.office,bank
cname=cacti.initech.office,victoria
cname=opennms.initech.office,victoria
У нас есть машины, которые называются балам, банк и виктория. Мы создали CNAME для vpn.initech.office и т. Д., Которые указывают на них.
Мы запускаем его в Linux, но он также работает и в OS X.
Я разработчик RubyDNS. Похоже, что вы уже запускаете что-то на том же UDP-порту в сообщении об ошибке. Кроме того, похоже, что вы используете более старую версию RubyDNS. Я бы порекомендовал вам обновить его до последней версии.