Setting up IIS7 and TomCat on single machine with multiple IP
Given: two dns names which points to one machine: "mysrv" and "myapp.mysrv". This machine has two ip address (1.1.1.1 and 1.1.1.2).
I need to set up IIS7 on 1.1.1.1 for myapp.mysrv and TomCat for 1.1.1.2 for mysrv.
I need the server serves two resources (mysrv and myapp.mysrv ) on 80 port.
What I did: In TomCat's config (server.xml) I add 'address' attribute to Connector element:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="80" minProcessors="5"
address="1.1.1.2"
maxProcessors="75"
enableLookups="false" redirectPort="8443" acceptCount="10" />
and
<Engine name="Standalone" defaultHost="mysrv" debug="0">
<Host name="mysrv" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false">
Then in IIS Manager I create a site and set up binding for it as: Type=http;Host Name=myapp.srv;Port=80; IP Address=1.1.1.1
But when I try to start the site I get two errors (in EventLog): 1. World Wide Web Publishing Service (WWW Service) did not register the URL prefix http://myapp.mysrv:80:1.1.1.1/ for site 2. The site has been disabled. The data field contains the error number.
2. Unable to bind to the underlying transport for [::]:80. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.
Solution 1:
By default, IIS binds to port 80 on all IP's on the machine. To disable this behavior in IIS 7, execute the following command, substituting in the IP address you want IIS to listen on:
netsh http add iplisten ipaddress=xxx.xxx.xxx.xxx
You'll need to restart IIS for the change to take effect.