14.6. Configure a load-balancing cluster with ISAPI
Task: Configure ISAPI to serve a Load-Balancing Cluster
- Complete the relevant Microsoft IIS clustering setup procedure. Refer to Section 14.3, “Microsoft IIS 6 initial clustering configuration” or Section 14.4, “Microsoft IIS 7 initial clustering configuration” for more information.
- The following steps assume that the
C:\connectorsdirectory is used to store logs, properties files, and NSAPI locks.
Create isapi_redirect.properties fileCreate a new file named
isapi_redirect.propertiesfile must be in the same directory as the
isapi_redirect.dllfile.Append the following configuration block to the file:
# Configuration file for the ISAPI Redirector # Extension uri definition extension_uri=/jboss/isapi_redirect.dll # Full path to the log file for the ISAPI Redirector log_file=c:\connectors\isapi_redirect.log # Log level (debug, info, warn, error or trace) # Use debug only testing phase, for production switch to info log_level=debug # Full path to the workers.properties file worker_file=c:\connectors\workers.properties # Full path to the uriworkermap.properties file worker_mount_file=c:\connectors\uriworkermap.properties #OPTIONAL: Full path to the rewrite.properties file rewrite_rule_file=c:\connectors\rewrite.properties
Optional: Create rewrite.properties fileThe
rewrite.propertiesfile allows you to specify simple URL rewrites specific to an application. This configuration file is optional, and can be excluded from the
isapi_redirect.propertiesfile if URL rewrites are not required.The functionality offered is similar to Apache HTTP Server's mod_rewrite, but is less powerful. You specify the rewrite path using name-value pairs. A simple example is where the app_01 application has an abstract directory name containing images, and you want to remap that directory to something more intuitive.
#Simple example, images are accessible under abc path /app-01/abc/=/app-01/images/
Create uriworkermap.properties fileThe
uriworkermap.propertiesfile contains deployed application mapping configuration information. Append the following lines to the file.
# images, css files, path /status and /web-console will provided by nodes defined in load-balancer /css/*=router /images/*=router /status=router /web-console|/*=router # Example of exclusion from mapping, logo.gif will not be displayed !/web-console/images/logo.gif=* # Requests to /app-01 and /app-02 will be routed to nodes defined in load-balancer /app-01|/*=router /app-02|/*=router # mapping for management console, nodes in cluster can be enabled or disabled here /jkmanager|/*=status
Create workers.properties fileThe
worker.propertiesfile contains mapping definitions between worker labels and server instances. Append the following lines to the file.
# The advanced router LB worker worker.list=router,status # First EAP server definition, port 8009 is standard port for AJP in EAP # # lbfactor defines how much the worker will be used. # The higher the number, the more requests are served # lbfactor is useful when one machine is more powerful # ping_mode=A – all possible probes will be used to determine that # connections are still working worker.worker01.port=8009 worker.worker01.host=127.0.0.1 worker.worker01.type=ajp13 worker.worker01.ping_mode=A worker.worker01.socket_timeout=10 worker.worker01.lbfactor=3 # Second EAP server definition worker.worker02.port=8009 worker.worker02.host= 127.0.0.100 worker.worker02.type=ajp13 worker.worker02.ping_mode=A worker.worker02.socket_timeout=10 worker.worker02.lbfactor=1 # Define the LB worker worker.router.type=lb worker.router.balance_workers=worker01,worker02 # Define the status worker for jkmanager worker.status.type=status
NoteFor an explanation of
workers.propertiesdirectives, refer to Appendix A, Reference: workers.properties.
Restart IISRestart your IIS server to implement the changes. Execute the following commands for the IIS version you are running:
- IIS 6
C:\> net stop iisadmin /Y C:\> net start w3svc
- IIS 7
C:\> net stop was /Y C:\> net start w3svc
Verify the LogsEnsure you check the ISAPI logs once IIS has restarted. The logs are saved to the file location specified in the log_file property in
isapi_redirect.properties. You should also check IIS logs and the Event Viewer for other events of type Warning or Error.