Как подружить Apache и IIS

Довелось как-то решать задачу: в интрасети на одном и том же сервере необходимо установить два веб-сервера - IIS и Apache; причем чтобы оба отзывались по 80 порту, только по разным DNS-именам.

Естественно было решено назначить сетевому интерфейсу 2 IP-адреса, и "раскидать" оба сервера на разные адреса и соответствующим образом настроить DNS. Однако, не тут то было! :-) IIS напрочь отказывался стартовать в таких условиях. После некоторого изучения проблемы выяснилось следующее.

Итак, у нас имеется сервер на Windows 2003 Server. Для одного и того же сетевого интерфейса прописано два разных IP.

Проблема в том, что сервер IIS по умолчанию делает привязку ко всем IP-адресам. Но нам нужно привязаться только к 1 IP. Поможет нам в этом утилита httpcfg.exe. Найти ее можно в архиве Support.cab, который находится в папке Support\Tools на оригинальном диске Windows 2003.

Итак, чтобы задать IP-адрес, к которому будет привязываться IIS делаем так:

httpcfg set iplisten -i xxx.xxx.xxx.xxx

После этого можно посмотреть результат запроса следующим образом:

httpcfg query iplisten

Теперь осталось привязать Apache ко второму IP и перезапустить IIS.

Готово. Проверялось на IIS6.