I have an IIS website and several apache websites running on the same server. In order to achieve this result I bound IIS to the IP with the method below. You need to have two NIC ports assigned with a static address from your local DNS for this to work properly.
- IIS Network Card – set to 192.168.1.10 – (IIS7)
- Apache Network Card – set to 192.168.1.11 – (Apache 2.2)
I already had my apache setup with virtual hosting although I made some changes to bind Apache to an IP address instead of all ip’s as I originally had.
This is the original setting which basically allows all “*” network cards to send port 80 traffic to that particular virtual host.
Old
VirtualHost *:80
New – (responds only to traffic sent from 192.168.1.11:80)
VirtualHost 192.168.1.11:80
IIS Bindings
Selected from the drop-down 192.168.1.10.
After these settings where in place I followed the steps below and everything started up just fine.
- Type netsh
- Type http
- Type sho iplisten. It should be blank
- Type add iplisten ipaddress=192.168.0.10
- You should get IP address successfully added
- Type sho iplisten again
- It should sho 192.168.0.10 in the list
- Type exit to get out of netsh
- Type type netstat -an. See if you notice 192.168.0.10:80 in the list. If you see 0.0.0.0:80, do an iisreset
I may have missed some steps because my Apache settings are a work in progress.

I believe you have made many truly interesting points. Not too many people would really think about it the direction you just did. I am truly impressed that there is so much about this subject that has been uncovered and you did it so nicely
If you want to make these sites both public at the same time you will need a public IP address from you ISP and you will have to modify your firewall forwarding rules to send all port 80 and 443 traffic from PUBLIC IP x.x.x.1 to 192.168.0.10 and x.x.x.2 to 192.168.0.11.
Configuring Apache manually is a pain at times but is incredibly simple when you consider the your level of abstraction and how close to the code you really are.