Red Hat Training

A Red Hat training course is available for Red Hat JBoss Web Server

Appendix A. Reference

A.1. Apache Modules

This section contains expanded definitions of the Apache proxy server modules discussed in Section 3.1.2, “Components” .

A.1.1. mod_manager.so

The Cluster Manager module, mod_manager, receives and acknowledges messages from nodes, including worker node registrations, worker node load data, and worker node application life cycle events.
LoadModule manager_module modules/mod_manager.so
Configurable directives in the <VirtualHost> element are as follows:
EnableMCPMReceive
Allows the VirtualHost to receive the mod_cluster Protocol Message (MCPM) from nodes. Add one EnableMCPMRecieve directive to the httpd configuration to allow mod_cluster to operate correctly. EnableMCPMRecieve must be added in the VirtualHost configuration, at the location where advertise is configured.
MaxMCMPMaxMessSize
Defines the maximum size of mod_cluster Management Protocol (MCMP) messages. The default value for this is calculated from other Max directives. The minimum value for this is 1024.
AllowDisplay
Toggles the additional display on the mod_cluster-manager main page. The default value is off, which causes only version information to display on the mod_cluster-manager main page.
AllowCmd
Toggles permissions for commands using mod_cluster-manager URL. The default value is on, which allows commands.
ReduceDisplay
Toggles the reduction of information displayed on the mod_cluster-manager page. Reducing the information allows more nodes to display on the page. The default value is off which allows all the available information to display.
MemManagerFile
Defines the location for the files in which mod_manager stores configuration details. mod_manager also uses this location for generated keys for shared memory and lock files. This must be an absolute path name. It is recommended that this path be on a local drive, and not a NFS share. The default value is /logs/.
Maxcontext
The maximum number of contexts mod_cluster will use. The default value is 100.
Maxnode
The maximum number of worker nodes mod_cluster will use. The default value is 20.
Maxhost
The maximum number of hosts (aliases) mod_cluster will use. This is also the maximum number of load balancers. The default value is 10.
Maxsessionid
The maximum number of active session identifiers stored. A session is considered inactive when no information is received from that session within five minutes. This is used for demonstration and debugging purposes only. The default value is 0, which disables this logic.
ManagerBalancerName
The name of the load balancer to use when the worker node does not provide a load balancer name. The default value is mycluster.
PersistSlots
When set to on, nodes, aliases and contexts are persisted in files. The default value is off.
CheckNonce
When set to on, session identifiers are checked to ensure that they are unique, and have not occurred before. The default is on.

Warning

Setting this directive to off can leave your server vulnerable to replay attacks.
SetHandler mod_cluster-manager
Defines a handler to display information about worker nodes in the cluster. This is defined in the Location element:
<Location $LOCATION>
  SetHandler mod_cluster-manager
  Require ip 127.0.0.1
</Location>
When accessing the $LOCATION defined in the Location element in your browser, you will see something like the following. (In this case, $LOCATION was also defined as mod_cluster-handler.)
Transferred corresponds to the POST data sent to the worker node. Connected corresponds to the number of requests that had been processed when this status page was requested. Sessions corresponds to the number of active sessions. This field is not present when Maxsessionid is 0.

A.1.2. mod_proxy_cluster.so

The Proxy Balancer Module, mod_proxy_cluster, handles the routing of requests to cluster nodes. The Proxy Balancer selects the appropriate node to forward the request to based on application location in the cluster, the current state of each of the cluster nodes, and the Session ID (if a request is part of an established session).
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
You can also configure the following directives in the <VirtualHost> element to change load balancing behavior.

mod_proxy_cluster directives

CreateBalancers
Defines how load balancers are created in the Apache HTTP Server virtual hosts. The following values are valid in CreateBalancers:
0
Create load balancers in all virtual hosts defined in Apache HTTP Server. Remember to configure the load balancers in the ProxyPass directive.
1
Do not create balancers. When using this value, you must also define the load balancer name in ProxyPass or ProxyPassMatch.
2
Create only the main server. This is the default value for CreateBalancers.
UseAlias
Defines whether to check that the defined Alias corresponds to the ServerName. The following values are valid for UseAlias:
0
Ignore Alias information from worker nodes. This is the default value for UseAlias.
1
Verify that the defined alias corresponds to a worker node's server name.
LBstatusRecalTime
Defines the interval in seconds between the proxy calculating the status of a worker node. The default interval is 5 seconds.
ProxyPassMatch; ProxyPass
ProxyPass maps remote servers into the local server namespace. If the local server has an address http://local.com/, then the following ProxyPass directive would convert a local request for http://local.com/requested/file1 into a proxy request for http://worker.local.com/file1.
ProxyPass /requested/ http://worker.local.com/
ProxyPassMatch uses Regular Expressions to match local paths to which the proxied URL should apply.
For either directive, ! indicates that a specified path is local, and a request for that path should not be routed to a remote server. For example, the following directive specifies that .gif files should be served locally.
ProxyPassMatch ^(/.*\.gif)$ !

A.1.3. mod_advertise.so

The Proxy Advertisement Module, mod_advertise.so, broadcasts the existence of the proxy server via UDP multicast messages. The server advertisement messages contain the IP address and port number where the proxy is listening for responses from nodes that wish to join the load-balancing cluster.
This module must be defined alongside mod_manager in the VirtualHost element. Its identifier in the following code snippet is advertise_module.
LoadModule advertise_module modules/mod_advertise.so
mod_advertise is configurable using the following directives:
ServerAdvertise
Defines how the advertising mechanism is used.
When set to On, the advertising mechanism is used to tell worker nodes to send status information to this proxy. You can also specify a hostname and port with the following syntax: ServerAdvertise On http://hostname:port/. This is only required when using a name-based virtual host, or when a virtual host is not defined.
The default value is Off. When set to Off, the proxy does not advertise its location.
AdvertiseGroup
Defines the multicast address to advertise on. The syntax is AdvertiseGroup address:port, where address must correspond to AdvertiseGroupAddress, and port must correspond to AdvertisePort in your worker nodes.
If your worker node is JBoss EAP-based, and the -u switch is used at startup, the default AdvertiseGroupAddress is the value passed via the -u switch.
The default value is 224.0.1.105:23364. If a port is not specified, the port defaults to 23364.
AdvertiseFrequency
The interval (in seconds) between multicast messages advertising the IP address and port. The default value is 10.
AdvertiseSecurityKey
Defines a string used to identify mod_cluster in JBoss Web Server. By default this directive is not set and no information is sent.
AdvertiseManagerUrl
Defines the URL that the worker node should use to send information to the proxy server. By default this directive is not set and no information is sent.
AdvertiseBindAddress
Defines the address and port over which to send multicast messages. The syntax is AdvertiseBindAddress address:port. This allows an address to be specified on machines with multiple IP addresses. The default value is 0.0.0.0:23364.

A.1.4. mod_proxy.so

mod_proxy.so is a standard Apache HTTP Server module. This module lets the server act as proxy for data transferred over AJP (Apache JServe Protocol), FTP, CONNECT (for SSL), and HTTP. This module does not require additional configuration. Its identifier is proxy_module.
Mod_proxy directives such as ProxyIOBufferSize are used to configure mod_cluster.

A.1.5. mod_proxy_ajp.so

mod_proxy_ajp.so is a standard Apache HTTP Server module that provides support for AJP (Apache JServe Protocol) proxying. Mod_proxy.so is required to use this module.

A.1.6. mod_cluster_slotmem

mod_cluster_slotmem does not require any configuration directives.