The ClusterListener allows a standalone JBoss Web to work with a mod_cluster proxy. It also works in JBoss AS.

To enable it just add in server.xml:

The following parameters are supported:

  • proxyList: list of proxy frond-end that will use us as backend that is a coma separed list of host:port example:

    • ProxyList="localhost:6666,neo:6666"localhost:7666"

  • proxyURL: URL prefix to send with the commands default is no prefix

    • proxyURL="/bla"

  • socketTimeout: Socket timeout for connections to the httpd servers default 20000ms

    • socketTimeout="20000"

  • domain: domain

    • domain="domain1"

  • flushPackets: How mod_proxy should flush the packets.

    • flushPackets="on"

  • flushWait: Time in millisecond before flushing a packet

    • flushWait="500"

  • ping: Max time to wait for a cpong after a cping (Asynchronous and Synchronous ping/pong)

    • ping="10"

  • smax: Max number of connection a process will handle in one worker

    • smax="100"

  • ttl: Max time an unused connection is allowed to live in mod_cluster.

    • ttl="600"

  • nodeTimeout: Max time mod_cluster is going to wait for a node to answer. Value in seconds.

    • nodeTimeout="10"

  • balancer: Name of the balancer.

    • balancer="cluster1"

  • stickySession: Use sticky session.

    • stickySession="true"

  • stickySessionRemove: Remove the session id is the JVMRoute can’t be used to route the request.

    • stickySessionRemove="true"

  • stickySessionForce: Return an error is the worker corresponding to the JVMRoute can’t be used.

    • stickySessionForce="true"

  • workerTimeout: Max time to wait for a free worker. Note that is a kind of poll try to find the best worker. Value in seconds.

    • workerTimeout="1"

  • maxAttempts: Number of retry before giving up (and returning an error)

    • maxAttempts="3"

Using mod_advertise

mod_advertise is a small httpd module that allows to discover the httpd front-end instead defining them in proxyList. 3 parameters are supported:

  • Advertise: Default is true if proxyList is not filled.

  • AdvertiseGroupAddress: Address of the multicast to join. Must be the same value as the mod_advertise directive AdvertiseGroup.

    • AdvertiseGroupAddress="232.0.0.2"

  • AdvertisePort: Port of the multicast to join. Must be the same value as the mod_advertise directive (mod_advertise default 23364).

    • AdvertisePort="23364"

  • AdvertiseSecurityKey: Key the front-end is going to send. Default no key no check.

Using SSL

  • ssl: Use SSL to connect to httpd, default false

    • ssl="true"

  • sslCiphers: Ciphers to be used for the SSL connection

    • sslCiphers="cipher1,cipher2"

  • sslProtocol: SSL protocol to be used for connection, default "TLS"

    • sslProtocol="name"

  • sslCertificateEncodingAlgorithm: Encoding algorithm used for certificates

    • sslCertificateEncodingAlgorithm="alg"

  • sslKeyStore: Certificate store, default to "~/.keystore"

    • sslKeyStore="myCertificate"

  • sslKeyStorePass: Password for the certificate, default "changeit"

    • sslKeyStorePass="changeit"

  • sslKeyStoreType: Certificate store type, default "JKS"

    • sslKeyStoreType="type"

  • sslKeyStoreProvider: Certificate store provider

    • sslKeyStoreProvider="provider"

  • sslKeyAlias: Alias name for the key

    • sslKeyAlias="alias"

  • sslTrustAlgorithm: Encoding algorithm used for the trust certificates

    • sslTrustAlgorithm="alg"

  • sslCrlFile: Certificate revocation list

    • sslCrlFile="file"

  • sslTrustMaxCertLength: Maximum certificate chain length, default 5

    • sslTrustMaxCertLength="6"

  • sslTrustStore: Trust certificate store

    • sslTrustStore="myTrustStore"

  • sslTrustStorePassword: Password for the trust store, default is to use the main certificate password

    • sslTrustStorePassword="pass"

  • sslTrustStoreType: Certificate store type

    • sslTrustStoreType="type"

  • sslTrustStoreProvider: Certificate store provider

    • sslTrustStoreProvider="provider"