Привет всем,
У меня есть сервер с двумя службами tomcat (один работает на порту 80, а другой 8080).
Я хочу иметь две разные записи DNS для этих двух портов, чтобы они были доступны через:
http://example1/
http://example2/
Вместо того
http://example1/
http://example1:8080/
Я знаю, что это невозможно с использованием записей DNS A, но знает ли кто-нибудь о другом решении, которое я мог бы изучить?
Спасибо,
Андрей
вы не можете сделать это на уровне DNS.
что вы можете сделать, так это иметь запись server1 (порт 80) как есть, затем создать запись server2 (вы можете использовать тот же IP) и перенаправить http на server1: 8080 (вы можете сделать это с помощью перезаписи apache):
<VirtualHost IP:80>
ServerName server2
RewriteEngine on
RewriteRule ^(.*)$ http://server1:8080/ [R,L]
</VirtualHost>
Вы также должны иметь возможность решить эту проблему на уровне брандмауэра, используя два правила NAT, при условии, что веб-сайты могут быть привязаны к отдельным IP-адресам. Вы выполняете NAT одного из веб-сайтов через внешний порт 80 на внутренний порт 8080.
Кстати, я предпочитаю порт, отличный от 8080, поскольку он обычно используется для веб-прокси.
DNS здесь не может вам помочь: единственные порты, о которых он знает, - это его собственные (53) и те, которые закодированы в записях SRV.
Если я правильно помню, Tomcat позволяет вам настраивать виртуальные хосты на основе имен, что звучит так, как вы хотите (вставляйте свои приложения в разные именованные vhosts, а не на разные порты).
Также можно переместить приложение «порт 8080» на порт 80 на другом IP-адресе.
Если вам по какой-то причине нужно сохранить приложение на порту 8080, умное использование mod_rewrite или перенаправления HTTP / 301 могут быть выполнены так, как вы хотите («Если хост -« example2 », перенаправьте пользователя на порт 8080»). Более глубокие уровни сложности оставлены как (болезненное) упражнение для читателя.