Извините, если этот вопрос не имеет смысла (здесь нет эксперта), но я понимаю, что tomcat слушает порт 8080 и этот URL-адрес обычно адресован 80. Есть ли способ сообщить DNS, что URL-адреса должны указывать на 8080? Или как мне решить эту проблему?
DNS ничего не знает о портах. Если вы хотите, чтобы tomcat прослушивал порт 8080, у вас есть несколько вариантов. Первый - использовать номер порта в URL-адресе.
http://example.com:8080/
Если вам не нравится смотреть на это, вы можете использовать свой веб-сервер в качестве прокси-сервера, например, в Apache вы можете использовать мод_доверенное лицо
<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>
Возможно, есть возможность решить эту проблему через DNS: SRV-отчеты
С помощью SRV-Records вы в основном говорите DNS, чтобы он отвечал на вопрос типа «где находится httpd из example.org»? И DNS отвечает IP-адресом И номером порта.
Хотя я не знаю, запрашивают ли клиенты эту информацию или браузер просто выполняет поиск A-Record и запрашивает веб-сайт с заданного IP-адреса, используя порт 80, это, возможно, стоит попробовать, если вы хотите сделать это с помощью DNS.
В противном случае: пусть ether Tomcat прослушивает порт 80 или перенаправляет 8080 на Tomcat через mod_proxy Apache.
Я думаю, что лучше всего сделать так, чтобы ваш Tomcat слушал порт 80. Вы можете сделать это, если нет другого сервера, который слушает порт 80. Для этого вы можете отредактировать server.xml
Измените следующим образом:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
Теперь ты можешь попробовать http://example.com/. Это правильно разрешит ваш экземпляр tomcat, потому что порт http по умолчанию - 80.
Это делается http://the.site.invaild:8080/
.
Невозможно указать порт в DNS. DNS только сопоставляет имена с IP-адресами. Но без портов.