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 может быть отклонен,
- SSL не позволяет IP, потому что сертификат ничего не знает об IP-адресе.
- Если вы используете виртуальный хост на Apache или интерфейсный коммутатор, он обычно основан на решении по имени хоста, которое вы используете, и он не знает, как маршрутизировать IP.
- У вас может быть какой-то фильтр безопасности или правило для проверки заголовков хостов в 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-адрес в журнале.