The ever elusive Resin Virtual Hosting - Multiple JVMs under IIS
(or... here?s how I got it running...)
I?ve done this under Windows 2000, IIS 5.0, Resin 2.0.5
Under Inetpub I created a VirtualScripts directory (seemed to be the right place) and within that directories for all my Virtual Hosts. In each of those I placed the isapi_srun.dll and a resin.ini file.
Inetpub
VirtualScripts
Resin1
isapi_srun.dll
resin.ini
Resin2
isapi_srun.dll
resin.ini
Resin3
isapi_srun.dll
resin.ini
The resin.ini in Resin1 has one line:
CauchoConfigFile d:/resin/conf/resin1.conf
(all the others are similar ... and point to the appropriate .conf file)
Create your virtual servers in IIS like normal. Then create a Virtual Directory called scripts in each and have it point to the matching directory you created above. Make sure you create it with Execute (such as ISAPI applications or CGI) checked. (the third checkbox... normally unchecked.
Go to the properties for the Virtual Host and set up the isapi_srun.dll as in the screen capture below.
My Resin directory d:\Resin is a standard Resin install... in the d:\Resin\conf I placed a Resin1.conf, Resin2.conf and Resin3.conf (pointed to by the above resin.ini files) I also used the resin:include directive to allow standard attributes to be shared among all the servers. You can decide which you want to share.
Here?s my Resin1.conf
<caucho.com>
<http-server>
<host id=?resin1.rockhopper.com?>
<app-dir>d:\websites\resin1</app-dir>
</host>
<http port=?8081?/>
<srun port=?6801?/>
<resin:include href=?resin-http-server.conf?/>
</http-server>
<resin:include href=?resin-param.conf?/>
</caucho.com>
And now, my Resin2.conf
<caucho.com>
<http-server>
<host id=?resin2.rockhopper.com?>
<app-dir>d:\websites\resin2</app-dir>
</host>
<http port=?8021?/>
<srun port=?6821?/>
<resin:include href=?resin-http-server.conf?/>
</http-server>
<resin:include href=?resin-param.conf?/>
</caucho.com>
Take note of the port changes for http port and srun port. You can use whatever you like here.. just so each file has it?s own set.
In the resin-http-server.conf, I put all my <http-server></http-server> configuration, and in the resin-param.conf, all configuration that fell outside the <http-server> tags. You may wish to include entire configuration in one resin1.conf file... but I?d like to save modifying multiple files later on for consistant parameters. (I?m just lazy that way)
If you are running as services, you?ll need to use the following (or similar command) for each virtual server.
httpd -conf d:\resin\conf\resin1.conf install-as Resin1
The install-as will give you a unique name for each Resin service.
(Remember to go in and start each service)
Now kick IIS (preferrably out the door) and you should have Virtual Servers each with it?s own JVM.
Please send all corrections, gripes and comments to me at [email protected] (spammers need not apply, everyone else remove the -nospam before mailing)