Introduction

The configuration of Silverpeas behind an Apache reverse-proxy is quite straightforward.
In this example we want to configure a reverse-proxy that is handling SSL and proxyfying a JBoss server on port 80.

Apache Configuration

You should have the following elements in your Apache configuration :

ProxyTimeout 600
ProxyRequests off
ProxyPreserveHost on
ProxyPass / http://internal.domain.tld/ keepalive=on
ProxyPassReverse / http://internal.domain.tld/
     

Using the parameter ProxyPreserveHost doesn't seem to have any effect on the configuration.
The parameter keepalive=on is usefull if you have a firewall standing between the Apache server and the JBoss server.
Notice that we didn't write the SSL configuration. Also the value internal.domain.tld must be replaced by the effective name of your JBoss server that can be resolved.

Configuring JBoss

For JBoss 6 the configuration takes place in the $JBOSS_HOME/server/default/deploy/jbossweb.sar/server.xml, edit this file and change the bold values

<Connector URIEncoding="UTF-8" address="${jboss.bind.address}" port="${jboss.web.http.port}" 
        protocol="HTTP/1.1" redirectPort="${jboss.web.https.port}" 
        proxyName="external.domain.tld" proxyPort="443" scheme="https" />

If Apache is not using SSL, you don't have to define the scheme and proxyPort.
The value of external.domain.tld must be replaced by the external resolved name of the Apache server.