You can use Enterprise Server with Sun GlassFish Web Stack, which pre-integrates and bundles components such as Apache HTTP Server, PHP, Ruby, and more. For more information about Sun GlassFish Web Stack, see the Sun GlassFish Web Stack Documentation wiki.
Enterprise Server provides support for load balancing by using the load balancer plug-in front-ended by Sun Java System Web Server, Apache Web Server and Microsoft IIS. Another technique for front-ending Enterprise Server is to use Apache httpd with the mod_jk connector.
Create an Enterprise Server cluster.
Define the following JVM options as follows:
asadmin create-jvm-options --target cluster_name "-DjvmRoute=\${AJP_INSTANCE_NAME}"
asadmin create-jvm-options --target cluster_name "-Dcom.sun.enterprise.web.connector.enableJK=\${AJP_PORT}"
Configure the JVM options, AJP_PORT and AJP_INSTANCE_NAME, for each instance in the cluster with the following command:
asadmin create-system-properties --target instance_name AJP_INSTANCE_NAME=instance_name
asadmin create-system-properties --target instance_name AJP_PORT=port-number
Restart the cluster
Install Apache httpd.
Apache httpd is available from http://httpd.apache.org/download.cgi
Install mod_jk.
The mod_jk connector is available from http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
Add the following lines to the mof_jk.so file:
LoadModule jk_module path_to_mod_jk.so JkWorkersFile /etc/apache2/worker.properties # Where to put jk logs JkLogFile /var/log/httpd/mod_jk.log # Set the jk log level [debug/error/info] JkLogLevel debug # Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " # JkRequestLogFormat set the request format JkRequestLogFormat "%w %V %T" # Send all jsp requests to GlassFish JkMount /*.jsp loadbalancer.
Create a new file named /etc/apache2/worker.properties and add the following lines:
# Define 1 real worker using ajp13 worker.list=loadbalancer # Set properties for instance1 worker.instance1.type=ajp13 worker.instance1.host=localhost worker.instance1.port=9090 worker.instance1.lbfactor=50 worker.instance1.cachesize=10 worker.instance1.cache_timeout=600 worker.instance1.socket_keepalive=1 worker.instance1.socket_timeout=300 # Set properties for instance2 worker.instance2.type=ajp13 worker.instance2.host=localhost worker.instance2.port=9091 worker.instance2.lbfactor=50 worker.instance2.cachesize=10 worker.instance2.cache_timeout=600 worker.instance2.socket_keepalive=1 worker.instance2.socket_timeout=300 # Set properties for instance3 worker.instance3.type=ajp13 worker.instance3.host=localhost worker.instance3.port=9092 worker.instance3.lbfactor=50 worker.instance3.cachesize=10 worker.instance3.cache_timeout=600 worker.instance3.socket_keepalive=1 worker.instance3.socket_timeout=300 worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=instance1,instance2,instance3
Copy the tomcat-ajp.jar file from the Apache 5.5.x installation to the Enterprise Server lib directory.
Copy the commons-logging.jar (version 1.1.1) and the commons-modeler.jar (version 2.0.1) file from the Jakarta Commons web site at http://commons.apache.org.
Restart the cluster and start httpd.