19.8.5. Configure ISAPI to Balance Client Requests Across Multiple JBoss EAP 6 Servers
This configuration balances client requests across the JBoss EAP 6 servers you specify. If you prefer to send client requests to specific JBoss EAP 6 servers on a per-deployment basis, refer to Section 19.8.4, “Configure the ISAPI Redirector to Send Client Requests to JBoss EAP 6” instead.
- Full administrator access on the IIS server.
Procedure 19.19. Balance Client Requests Across Multiple Servers
Create a directory to store logs, property files, and lock files.The rest of this procedure assumes that you are using the directory
C:\connectors\for this purpose. If you use a different directory, modify the instructions accordingly.
isapi_redirect.propertiesfile.Create a new file called
C:\connectors\isapi_redirect.properties. Copy the following contents into 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) log_level=info # 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.propertiesIf you do not want to use a
rewrite.propertiesfile, comment out the last line by placing a
#character at the beginning of the line. See Step 5 for more information.
uriworkermap.propertiesfile contains mappings between deployed application URLs and which worker handles requests to them. The following example file shows the syntax of the file, with a load-balanced configuration. The wildcard (
*) character sends all requests for various URL sub-directories to the load-balancer called
router. The configuration of the load-balancer is covered in Step 4.Place your
# images, css files, path /status and /web-console will be # provided by nodes defined in the load-balancer called "router" /css/*=router /images/*=router /status=router /web-console|/*=router # Example of exclusion from mapping, logo.gif won't be displayed !/web-console/images/logo.gif=* # Requests to /app-01 and /app-02 will be routed to nodes defined # in the load-balancer called "router" /app-01|/*=router /app-02|/*=router # mapping for management console, nodes in cluster can be enabled or disabled here /jkmanager|/*=status
workers.propertiesfile contains mapping definitions between worker labels and server instances. The following example file shows the syntax of the file. The load balancer is configured near the end of the file, to comprise workers
workers.propertiesfile follows the syntax of the same file used for Apache mod_jk configuration. For more information about the syntax of the
workers.propertiesfile, refer to Section 19.6.5, “Configuration Reference for Apache Mod_jk Workers”.Place this file into the
# 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
rewrite.propertiesfile contains simple URL rewriting rules for specific applications. The rewritten path is specified using name-value pairs, as shown in the example below. Place this file into the
#Simple example # Images are accessible under abc path /app-01/abc/=/app-01/images/
Restart the IIS server.Restart your IIS server by using the
C:\> net stop was /Y C:\> net start w3svc
The IIS server is configured to send client requests to the JBoss EAP 6 servers referenced in the
workers.properties file, spreading the load across the servers in a 1:3 ratio. This ratio is derived from the load balancing factor (
lbfactor) assigned to each server.