У меня есть сеть за NAT с несколькими машинами.
Машины бывают:
У меня также есть mydomain.com.
server.mydomain.com указывает на IP-адрес моего подключения (единственный IP-адрес), который является маршрутизатором, который перенаправляет порты на сервер.
На сервере запущен httpd, который обслуживает разные сайты на основе vhosts.
Итак, у меня есть site1.server.mydomain.com, site2 ..
Проблема в том, что весь трафик проходит через маршрутизатор, и когда я проверяю журналы, я всегда вижу IP-адрес маршрутизатора для всего (поэтому трудно увидеть, кто запускает скрипт с помощью while (1)).
Я бы просто ServerAlias site1.server.local, но у большинства сайтов есть корневой URL-адрес, сохраненный где-то поверх, на котором создаются другие URL-адреса, поэтому я не могу этого сделать.
Решением для меня было бы указать dnsmasq как-то ответить на * .mydomain.com с IP-адресом сервера.
Возможно ли это как-нибудь?
Я делаю то же самое на своем сервере (ах) разработки, чтобы иметь синхронизированное зеркало локально и на внешнем сервере с идентичными конфигурациями.
Вот что вам нужно в вашем dnsmasq.conf (не забудьте перезапустить его), если внутренний интерфейс вашего веб-сервера 192.168.0.3:
address=/.server.mydomain.com/192.168.0.3
Это создаст запись с подстановочными знаками для * .server.mydomain.com, и пока ваш клиент использует DNSMasq для своего DNS (и ваш сервер прослушивает внутренний интерфейс), все готово.
Я не уверен, что понимаю вашу проблему, но мне кажется, что основная причина ваших проблем - это NAT для входящих соединений на вашем маршрутизаторе. В частности, поскольку вы сказали, что все входящие подключения появляются в журналах с IP-адресом маршрутизатора, похоже, что вы маскируете все входящие подключения.
Что вам следует сделать, так это входящее соединение DNAT и исходящие соединения SNAT на маршрутизаторе, которые сохранят исходный IP-адрес каждого соединения.