
Я пытаюсь получить доступ к приложениям с внутренними IP-адресами через поддомены извне.
Согласно моим исследованиям, если говорить о http-запуске Apache, то это кажется осуществимым при наличии DNS-сервера внутри.
Как указать поддомены на разные локальные IP-адреса
Однако что делать, если приложение не является веб-сайтом и не использует Apache?
то, что я пытаюсь сделать, это
если порт 8000 запрошен на abc.mydomain.com, он указывает на 192.168.0.1:8000
если порт 8000 запрошен на def.mydomain.com, он указывает на 192.168.0.2:8000
Я использовал публичные IP-адреса вместо внутренних адресов, и это работало нормально, однако теперь я не могу позволить себе публичные IP-адреса и ищу решение. Спасибо!
решение1
Типичный вариант использования DNS для преобразования имен в IP-адреса не поможет, если IP-адреса одинаковы. Разные записи A преобразуются в один и тот же IP-адрес, который с точки зрения уровня IP имеет одно и то же назначение.
Используйте балансировщик нагрузки, который распознает приложение, чтобы сделать виртуальный хостинг на основе имени. Как ссылка, которую вы цитировали, в которой Apache httpd использует заголовок http Hosts. Различение запросов на уровне 7.
Решением в конечном итоге является IPv6. /64 для каждой подсети, публичные IP-адреса для каждого хоста и прекращение ценообразования по IP-адресам.