Dnsmasq для локальной разработки под Mac

Так как наш проект использует динамические поддомены, то есть, кроме основного www.studytube.com, может быть еще сколько угодно XXX.studytube.com. Для локальной среды мы настроили домен studytube.dev. Но тут же появился вопрос: как сделать так, чтобы не нужно было каждый раз прописывать в хосты новый поддомен. Wildcard опцию, то есть возможность указать *.studytube.dev, к сожалению, /etc/hosts не поддерживает.

К счастью, на помощь к нам пришел локальный DNS-сервер Dnsmasq.

Настройка его очень простая. Все что вам нужно сделать это:

  • установить Dnsmasq
  • настроить Dnsmasq, чтобы все запросы .dev он отдавал 127.0.0.1
  • настроить OS X для отправки всех запросов .dev в Dnsmasq;

Более подробно можно тут и на русском тут.

На всякий случай, список команд сохраню тут:

[shell]
brew install dnsmasq
cp $(brew list dnsmasq | grep /dnsmasq.conf.example$) /usr/local/etc/dnsmasq.conf
sudo cp $(brew list dnsmasq | grep /homebrew.mxcl.dnsmasq.plist$) /Library/LaunchDaemons/
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
echo "\naddress=/dev/127.0.0.1" >> /usr/local/etc/dnsmasq.conf
sudo launchctl stop homebrew.mxcl.dnsmasq
sudo launchctl start homebrew.mxcl.dnsmasq
sudo mkdir -p /etc/resolver
sudo tee /etc/resolver/dev >/dev/null <<EOF
nameserver 127.0.0.1
EOF
ping xxx.dev
[/shell]