Este contenido no está disponible en el idioma seleccionado.

Chapter 3. Configure load balancing using Apache HTTP Server and mod_jk


Follow the tasks in this chapter to correctly configure load balancing using Apache HTTP Server and the mod_jk connector.

Task: Configure Apache HTTP Server to Load mod_jk

Complete this task to configure Apache HTTP Server to load mod_jk.

Prerequisites

  1. Open HTTPD_DIST/conf/httpd.conf and add the following text at the end of the file.
    # Include mod_jk's specific configuration file  
    Include conf/mod-jk.conf
    
    Copy to Clipboard Toggle word wrap
  2. Create a new file named HTTPD_DIST/conf/mod-jk.conf
  3. Add the following configuration block to mod-jk.conf.
    # Load mod_jk module
    # Specify the filename of the mod_jk lib
    LoadModule jk_module modules/mod_jk.so
     
    # Where to find workers.properties
    JkWorkersFile conf/workers.properties
    
    # Where to put jk logs
    JkLogFile logs/mod_jk.log
     
    # Set the jk log level [debug/error/info]
    JkLogLevel info 
     
    # Select the log format
    JkLogStampFormat  "[%a %b %d %H:%M:%S %Y]"
     
    # JkOptions indicates to send SSK KEY SIZE
    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
     
    # JkRequestLogFormat
    JkRequestLogFormat "%w %V %T"
                   
    # Mount your applications
    JkMount /application/* loadbalancer
     
    # Add shared memory.
    # This directive is present with 1.2.10 and
    # later versions of mod_jk, and is needed for
    # for load balancing to work properly
    JkShmFile logs/jk.shm 
                  
    # Add jkstatus for managing runtime data
    <Location /jkstatus/>
        JkMount status
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
    
    Copy to Clipboard Toggle word wrap
  4. Confirm that the LoadModule directive references the right path for the mod_jk library. If not, edit the path.
  5. The default configuration specifies that static content is served directly by Apache HTTP Server and all requests with URL path /application/* are sent to the load balancer. If mod_jk is only to be used as a load balancer, change the directive to /*.
  6. Optional: JKMountFile Directive

    In addition to the JkMount directive, you can use the JkMountFile directive to specify a mount point's configuration file. The configuration file contains multiple Tomcat forwarding URL mappings.
    1. Navigate to HTTPD_DIST/conf.
    2. Create a file named uriworkermap.properties.
    3. Specify the URL whose requests are to be forwarded and the name of the worker node to which they are to be forwarded, using the following syntax example as a guide.
      The example block will configure mod_jk to forward requests to /jmx-console and /web-console to Apache HTTP Server.
      The syntax required takes the form /url=worker_name.
      # Simple worker configuration file
      
      # Mount the Servlet context to the ajp13 worker
      /jmx-console=loadbalancer
      /jmx-console/*=loadbalancer
      /web-console=loadbalancer
      /web-console/*=loadbalancer
      
      Copy to Clipboard Toggle word wrap
    4. In HTTPD_DIST/conf/mod-jk.conf, append the following directive.
      # You can use external file for mount points.
      # It will be checked for updates each 60 seconds.
      # The format of the file is: /url=worker
      # /examples/*=loadbalancer
      JkMountFile conf/uriworkermap.properties
      Copy to Clipboard Toggle word wrap

3.1. Configure worker nodes in mod_jk

Task: Configure mod_jk Worker Nodes

Complete this task to configure two mod_jk worker node definitions in a weighted round-robin configuration with sticky sessions active between two servlet containers.

Prerequisites

Understand the format of the workers.properties directives, as specified in Appendix A, Reference: workers.properties.
  1. Navigate to HTTPD_DIST/conf/.
  2. Create a file named workers.properties.
  3. Append the following information to workers.properties.
    # Define list of workers that will be used
    # for mapping requests
    worker.list=loadbalancer,status
    
    # Define Node1
    # modify the host as your host IP or DNS name.
    worker.node1.port=8009
    worker.node1.host=node1.mydomain.com
    worker.node1.type=ajp13
    worker.node1.ping_mode=A
    worker.node1.lbfactor=1 
    
    # Define Node2
    # modify the host as your host IP or DNS name.
    worker.node2.port=8009
    worker.node2.host=node2.mydomain.com
    worker.node2.type=ajp13
    worker.node2.ping_mode=A
    worker.node2.lbfactor=1
    
    # Load-balancing behavior
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=node1,node2
    worker.loadbalancer.sticky_session=1
    
    # Status worker for managing load balancer
    worker.status.type=status
    Copy to Clipboard Toggle word wrap
Volver arriba
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2025 Red Hat