Как сделать, чтобы URL указывал на экземпляр Tomcat?


8

Извините, если этот вопрос не имеет смысла (здесь нет эксперта), но я понимаю, что tomcat прослушивает порт 8080, а URL-адреса обычно адресованы 80. Есть ли способ сообщить DNS, что URL-адреса должны указывать на 8080? Или как мне решить эту проблему?


возможный дубликат направления DNS на разные порты
mailq 19.09.11

Я думаю, что эта статья объясняет, как SRV может использоваться для указания порта . Однако, похоже, что порт URI выбран в качестве приоритета над портом, назначенным DNS. Насколько я понимаю, веб-браузеры автоматически добавляют порт 80 к адресу, что может объяснить, почему мне не удалось заставить этот подход работать.
Andy2K11

Ответы:


8

DNS ничего не знает о портах. Если вы хотите, чтобы tomcat прослушивал порт 8080, у вас есть несколько вариантов. Первый заключается в использовании номера порта в URL

http://example.com:8080/

Если вам это не нравится, вы можете использовать свой веб-сервер в качестве прокси-сервера порта, например, в Apache вы можете использовать mod _ proxy

<VirtualHost *:80>
        ServerName      example.com
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                allow from all
        </Proxy>
        ProxyPreserveHost On
        ProxyPass / http://example.com:8080/
        ProxyPassReverse / http://example.com:8080/
        ProxyErrorOverride Off
</VirtualHost>

Что если у вас есть другой хост, прослушивающий порт 80? У меня есть 2 сервера на одной машине (требуется в этом случае), но я хочу скрыть номер порта в URL, даже если он прослушивает трафик на этот веб-сервер.
Джей Бланшар

@JayBlanchard Я не совсем понимаю ваш комментарий и не буду рисовать дальше, кроме как сказать, прочитайте документацию по виртуальным хостам на основе имен и mod_proxy.
user9517

2

Это сделано http://the.site.invaild:8080/.

Не возможно дать порт в DNS. DNS только сопоставляет имена с IP-адресами. Но нет портов.


2

Я думаю, что лучше сделать так, чтобы ваш кот слушал порт 80. Вы можете сделать это, если нет другого сервера, слушающего порт 80. Для этого вы можете отредактировать server.xml.

Изменить следующим образом:

<Connector port="80" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />

Теперь вы можете попробовать http://example.com/. Это правильно разрешит ваш экземпляр tomcat. Поскольку порт http по умолчанию - 80.


Я попробовал ваш пример, но он не работает для меня
Luffy

2

Может быть возможность решить это через DNS: SRV-Records

С помощью SRV-Records вы в основном говорите DNS ответить на вопрос типа «где httpd с example.org»? И DNS отвечает с IP-адреса И номера порта.

Хотя я не знаю, запрашивают ли клиенты эту информацию или браузер просто выполняет поиск A-Record и запрашивает веб-сайт с данного IP-адреса, используя порт 80, возможно, стоит попробовать, если вы хотите сделать это с DNS.

В противном случае: разрешите эфиру Tomcat прослушивать порт 80 или перенаправить 8080 на Tomcat через mod_proxy Apache.


Обычные браузеры пока не поддерживают поиск записей SRV - см. Homepage.ntlworld.com/jonathan.deboynepollard/FGA/… и обсуждение здесь .
The Wabbit
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.