Дано: два имени DNS, которые указывают на одну машину: «mysrv» и «myapp.mysrv». У этого аппарата два IP-адреса (1.1.1.1 и 1.1.1.2).
Мне нужно настроить IIS7 на 1.1.1.1 для myapp.mysrv и TomCat для 1.1.1.2 для mysrv.
Мне нужен сервер, обслуживающий два ресурса (mysrv и myapp.mysrv) на 80 порте.
Что я сделал: в конфигурации TomCat (server.xml) я добавляю атрибут 'address' к элементу Connector:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="80" minProcessors="5"
address="1.1.1.2"
maxProcessors="75"
enableLookups="false" redirectPort="8443" acceptCount="10" />
и
<Engine name="Standalone" defaultHost="mysrv" debug="0">
<Host name="mysrv" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false">
Затем в диспетчере IIS я создаю сайт и устанавливаю для него привязку как: Type = http; Host Name = myapp.srv; Port = 80; IP-адрес = 1.1.1.1
Но когда я пытаюсь запустить сайт, я получаю две ошибки (в журнале событий): 1. Служба публикации в Интернете (служба WWW) не зарегистрировала префикс URL. http: //myapp.mysrv: 80: 1.1.1.1/ для сайта 2. Сайт отключен. Поле данных содержит номер ошибки.
2. Невозможно выполнить привязку к базовому транспорту для [::]: 80. Список IP-адресов только для прослушивания может содержать ссылку на интерфейс, который может не существовать на этом компьютере. Поле данных содержит номер ошибки.
По умолчанию IIS привязывается к порту 80 на всех IP-адресах машины. Чтобы отключить это поведение в IIS 7, выполните следующую команду, подставив IP-адрес, который IIS должен прослушивать:
netsh http add iplisten ipaddress=xxx.xxx.xxx.xxx
Вам необходимо перезапустить IIS, чтобы изменения вступили в силу.
Попробуйте сделать:
httpcfg set iplisten -i 1.1.1.1:80
из командной строки. Это может быть пул сокетов ... IIS хочет прослушивать все IP-адреса по умолчанию (как сказал Эван), поэтому он вызывает приступ, когда Tomcat забирает один из них.