Захотелось странного. По работе нужен IIS, для прочего apache. Можно было поставить apache на другой не 80 порт, но …, не хочу всегда писать порт. С налета — не получилось. Пришлось порыться. Потому что нюансы есть.
Исходные данные:
Windows XP service pack 2, IIS 5.0, apache из XAMPP
network configuration -> TC/ICP configuration: добавляем второй IP (Например у нас был: 192.168.0.1, добавим еще один — 192.168.0.2)
Модифируем %windir%\system32\drivers\etc\hosts
127.0.0.1 localhost
192.168.0.1 iis
192.168.0.2 apache
IIS Management console -> default website -> Properties выбираем 192.168.0.1
Apache httpd.conf прописываем:
Listen 192.168.0.2:80
ServerName 192.168.0.2
Вуаля! Не тут-то было. IIS по умолчанию прослушивает на 80 и 443 порту все ip-адреса (apache правда на 443 точно также садится :) ). Посмотреть можно запустив:
netstat -ano
…
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 3450
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 3450
…
Две волшебные команды отучат IIS делать это:
443 порт для IIS поменяем на 4443
cscript adsutil.vbs set w3svc/<ID>/securebindings «:4443:»
ID можно узнать на IIS Management console -> Default website properties -> Web Site -> Properties. Цифра после W3scv (там где logname) и есть Ваш <ID>.
что бы IIS слушал только 80 порт на 192.168.0.1:
cscript adsutil.vbs set w3svc/DisableSocketPooling TRUE
Все. Теперь набирая http://iis или http://apache будете попадать на соответствующий сервер.