Table of Contents Previous Next Index

Section 32 Sharing a Server with IIS

Section 32 Sharing a Server with IIS
If you want to install LISTSERV Maestro on a server where an IIS web server is already running, then most likely the default HTTP port 80 is already in use by this web server. Therefor, you need to configure LISTSERV Maestro to use a different HTTP port. For details on configuring LISTSERV Maestro to use a different HTTP Port, see Section 14.2.1 Ports Used by LISTSERV Maestro.
The unfortunate side-effect of this is that users of LISTSERV Maestro will be unable to access Maestro with a nice "clean" URL, like http://myhost.domain.com/lui. Instead, they would have to include the non-standard HTTP port in the URL, like http://myhost.domain.com:8080/lui.
While this may be acceptable in many cases, in some cases it is not. In these cases, it is possible to "share" the standard port 80 with IIS or Apache.
Or more precisely: IIS acts as a reverse-proxy in such a way that the requests from the clients are made to IIS (on the default port), and IIS then dispatches the requests to LISTSERV Maestro as the backend server. LISTSERV Maestro's response is then passed back to IIS, which forwards it to the client. To the client this looks, as if it is communicating directly with LISTSERV Maestro on the standard port, when, in reality, it is communicating with IIS. However, this does not process the requests itself, but passes them on to LISTSERV Maestro and then passes the responses back to the client.
The following sections describe how to configure LISTSERV Maestro and IIS for such a scenario.
Important: The web site that is to be used for the proxying must not have any root folders with the names "lui", "hub", "list" or "trk", i.e. before configuring the web site as described below, make sure that the following URLs are not in use (and also not any sub-URLs that start with these URLs):

http://YOURSERVER/lui
http://YOURSERVER/hub
http://YOURSERVER/list
http://YOURSERVER/trk
32.1 Configuring LISTSERV Maestro
1.
Edit the file [install_folder]/conf/tomcat.ini and add the following entry:
AJPConnector=IP_ADDRESS:PORT
where you replace IP_ADDRESS with one of the IP-addresses of the server (usually the main address) and PORT with a free port that is not used by any other application (for example, 8009).
Example:
AJPConnector=192.168.1.1:8009
2.
Create a folder on the server, in a suitable location, with a suitable name. The account under which the web server is running must have “read and write” access to this folder. In the following steps, we will use [connector_folder] to depict this folder.
3.
[connector_folder]/workers.properties
4.
worker.list=maestro
worker.maestro.type=ajp13
worker.maestro.host=HOSTNAME
worker.maestro.port=PORT
where you replace HOSTNAME and PORT according to the values that you used for the AJPConnector setting in the tomcat.ini. The HOSTNAME must be a host name that maps to the IP-address that you used for the AJPConnector, and the PORT must be the same port as in the AJPConnector.
5.
[connector_folder]/uriworkermap.properties
6.
/lui|/*=maestro
/hub|/*=maestro
/trk/*=maestro
/list/*=maestro
32.2 Configuring IIS
1.
For 32-bit Windows:
http://apache.copahost.com//tomcat/tomcat-connectors/jk/binaries/win32/
For 64-bit Windows:
http://apache.copahost.com//tomcat/tomcat-connectors/jk/binaries/win64/
You only need to download the actual DLL from the release folder. It has a name like isapi_redirect-VERSION.dll. At the time of writing, the latest stable release was 1.2.31, so the filename was isapi_redirect-1.2.31.dll.
Download this file and then rename it to remove the version number from the name, so that it then has the name isapi_redirect.dll.
Put this file into the [connector_folder].
2.
[connector_folder]/isapi_redirect.properties
3.
extension_uri=/jakarta/isapi_redirect.dll
log_file=[maestro_install_folder]\logs\isapi_redirect.log
log_level=info
worker_file=[connector_folder]\workers.properties
worker_mount_file=[connector_folder]\uriworkermap.properties
where you replace [maestro_install_folder] and [connector_folder] (two occurrences of the latter) with the correct values for your system.
32.2.1 Configuring IIS 6
1.
2.
3.
Right-click on the Web Service Extension node.
4.
Select Add a new Web service Extension from the popup menu. In the dialog that opens:
a.
b.
Add one required file: Click the [Add] button, then the [Browse] button, then select the file [connector_folder]\isapi_redirect.dll
c.
Check the Set extension status to Allowed checkbox.
d.
Click [OK].
5.
6.
7.
8.
Select New > Virtual Directory from the popup menu. In the wizard, create a new virtual directory with the following settings:
Alias: Must be "jakarta" (without the quotes).
Path: Select the [connector_folder]
Permissions: Grant both "Read" and "Execute".
9.
10.
Select Properties from the popup menu. In the properties dialog:
a.
Go to the ISAPI Filters tab.
b.
Click [Add].
c.
d.
Click [Browse] to select the executable. Select the file [connector_folder]\isapi_redirect.dll
32.2.2 Configuring IIS 7
Note: At this time, we have not been able to test the following procedure ourselves, so it is described to the best of our knowledge.
In the Server Manager:
1.
2.
3.
4.
Select Add Application from the popup menu. In the dialog, enter the following settings:
Alias: Must be "jakarta" (without the quotes).
Physical path: Select the [connector_folder].
5.
6.
Select [Add] from the popup menu. In the dialog:
a.
b.
For the executable, select the file [connector_folder]\isapi_redirect.dll
7.
8.
Select Add Module Mapping from the popup menu. In the dialog:
a.
Request path: Must be "*.dll" (without the quotes).
b.
Module: IsapiModule
c.
Executable: Select the file [connector_folder]\isapi_redirect.dll
d.
Name: Specify a meaningful name (for example "LISTSERV Maestro").
e.
After you click [OK] in the dialog, you are asked if you want to allow this ISAPI extension. You must answer with Yes.
32.3 Completing the Configuration
After the configuration steps above have been completed, you must restart LISTSERV Maestro and IIS to activate the changes you made.
If everything is configured correctly, you should then be able to access LISTSREV Maestro through IIS. For example, if the web site for which you configured the proxying above is called "www.mycorp.com", then you can now access LISTSERV Maestro with the following URL:
http://www.mycorp.com/lui
As a last step, you should now log in to the Administration Hub and configure the access URLs to reflect that access to LISTSERV Maestro is now via the default port, i.e. the access URLs must no longer include the port element.
For example, if your LISTSERV Maestro is running on port 8080, then before you performed the above proxy configuration, your access URLs will look something like "http://SERVERNAME:8080". You now need to change these to plain URLs without a port element, like "http://SERVERNAME".
If you are configuring a fresh installation of LISTSERV Maestro, then that is all you need to do. But if you are configuring a LISTSERV Maestro instance that has already been in use for a while with the non-standard port (for example, 8080), then people might already have bookmarks to the LISTSERV Maestro access pages with this non-standard port.
After you have now changed the access URLs to no longer contain the non-standard port, users will no longer be allowed to log in to LISTSERV Maestro if they access it via these bookmarks. You should therefore set the old access URLs (the ones with the non-standard port) as access URL aliases. With such an alias, if a user accesses LISTSERV Maestro with the old URL (through an old bookmark), then they will still be allowed to login, and after login, they are automatically redirected to the new URL (with the standard port).