У меня есть серверное приложение, в котором я запускаю два экземпляра: производство и разработку, а именно:
prod.example.com (10.0.0.1)
dev.example.com (10.0.0.2)
Третье - party написала клиентское приложение, которое жестко запрограммировано так, чтобы указывать на prod.example.com
. Но я хочу, чтобы эти запросы направлялись на сервер dev.example.com
, а у меня нет доступа к исходному коду сторонних производителей.
У меня есть доступ (временно) к локальной сети что клиент и сервер работают, поэтому я могу использовать dnsmasq
для разрешения prod.example.com
на 10.0.0.2
, и в этот момент моя работа здесь готово, и клиентское приложение (неосознанно) будет разговаривать с сервером разработки (по крайней мере, я так думал).
I ' Мы дошли до того, что добавили следующую конфигурацию в dnsmasq.conf
..
address=/prod.example.com/10.0.0.2
.., которая действительно работает, но имеет побочный эффект в виде предотвращения разрешения всех других доменов.
Как можно Я ем свой торт и ем его?
Добавьте эту строку в /etc/dnsmasq.conf
:
addn-hosts=/etc/dnsmasq.hosts
Затем вставьте свои доменные имена в / etc / dnsmasq.hosts
:
10.0.0.1 prod.example.com.
10.0.0.2 dev.example.com.
Не забывайте точку в конце имени домена. Он отмечает его как TLD, а не как локальное имя хоста.
Как всегда, после изменения конфигурации перезапустите dnsmasq
:
sudo service dnsmasq restart