Tomcat принимает IP-адреса?

У меня есть приложение Tomcat, которое действует как веб-сервер / шлюз для Sun Systems Connect (который сам является шлюзом для учетных записей системного союза, который, как я подозреваю, является шлюзом для счастья).

Я могу получить доступ к странице входа в приложение через браузер, если я использую имя компьютера (или localhost, когда локально). Но ни IP машины, ни Localhost не позволяют мне видеть страницу входа.

Sun скажи мне, что это "особенность" Tomcat. К сожалению, машины учетных записей в разработке и в производстве имеют одно и то же имя (разные домены), поэтому я не могу сказать, выполняю ли я тесты на dev или live box. Если не считать смены имен я могу заставить Tomcat принимать IP-адреса?

3 ответа

Tomcat ничего не знает об IP-адресах. IP просто рассматривается как имя хоста. Вы должны убедиться, что конфигурация позволяет IP. У вас есть несколько вариантов для достижения этой цели.

Если вы добавите defaultHost для механизма, любое несоответствующее имя хоста или IP будет использовать этот виртуальный хост. Например,

<Engine name="Standalone" defaultHost="example.com">

Если вы хотите больше контроля, вы также можете добавить IP-адрес в качестве псевдонима, например,

<Host appBase="webapps" name="example.com">
   <Alias>192.168.1.2</Alias>
</Host>

Есть много других причин, по которым IP может быть отклонен,

  1. SSL не позволяет IP, потому что сертификат ничего не знает об IP-адресе.
  2. Если вы используете виртуальный хост на Apache или интерфейсный коммутатор, он обычно основан на решении по имени хоста, которое вы используете, и он не знает, как маршрутизировать IP.
  3. У вас может быть какой-то фильтр безопасности или правило для проверки заголовков хостов в HTTP и, в частности, отбрасывания запросов от неизвестных хостов.

Просмотр журналов может показать вам точную причину.

Прошло довольно много времени с тех пор, как я использовал Tomcat, но я подумал, что по умолчанию вы можете вызывать веб-службу по имени или IP-адресу. Я не знаю, поможет ли это, но вы можете попробовать установить виртуальный хост для IP-адреса в server.xmlнапример, добавить строфу что-то вроде

<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true">

но заменив "localhost" на IP-адрес вашей машины.

http://tomcat.apache.org/tomcat-4.1-doc/config/valve.html рассказывает о флаге resolHosts, который вызывает поиск DNS, также, возможно, с настройкой шаблона, показанного для одного из параметров%A, который вы могли бы перечислить IP-адрес в журнале.

Другие вопросы по тегам