eXo Platform comes with two sample portals that showcase the capabilities of the product. Before deploying your system in production, you will want to remove these sample apps.

It may be necessary to use an HTTP server as a frontend for tomcat. For example, you may want to keep more then one application server on the same host, and/or you want to access these app servers with separate DNS names, without having to add a port to the URL. There are two methods that allow you to "glue" Apache HTTP Daemon and tomcat application server:

With the glue method, it is necessary to configure Apache HTTP daemon to work as reverse proxy, which will redirect the client's requests to the app server's HTTP connector. For this type of connection, you will need to include the mod_proxy module in the HTTP demon configuratinon file. This can be found in the httpd.conf file, which is usually located here: /etc/httpd/conf/. However, depending on your OS, this path may vary. You will then need to add some directives to your virtual host configuration.

In this example, HTTP daemon will work in reverse proxy mode (ProxyRequests Off) and will redirect all requests to tcp port 8080 on localhost. So, the configuration of a virtual host will look like the following:

For more detail about mod_proxy, review this documentation

As described above, the 'glue' method can be implemented in two ways:

With the first method, you only need the HTTP demon and application server, but settings are limited. With the second method, you can obtain much richer settings, but you will need to download and install additional modules for HTTP Daemon that are not included in the default package.

  1. Download AJP connector module from here

  2. Move the downloaded mod_jk.so file into HTTPD's module directory. For example: /etc/httpd/modules (this may be different, depending on the OS)

  3. Create the configuration file for module mod_jk.conf

	LoadModule    jk_module  modules/mod_jk.so
	<IfModule jk_module>
	  # ---- Where to find workers.properties
          JkWorkersFile   conf.d/workers.properties
	  # ---- Where to put jk logs
	  JkLogFile       logs/mod_jk.log
	  # ---- Set the jk log level [debug/error/info]
	  JkLogLevel    info
	  # ---- Select the timestamp log format
	  JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
	  JkRequestLogFormat "%w %R %T"
	  # ---- Send everything for context /examples to worker named worker1 (ajp13)
	  JkMountFileReload       "0"
	</IfModule>
  

You can find more details in the Tomcat docs

  1. Place the mod_jk.conf file into the directory where other configuration files for Apache HTTP Demon are located. For example, /etc/httpd/conf.d/

  2. Create a workers.properties file, which defines AJP workers for HTTP demon.

	worker.list=status, WORKER_NAME
	# Main status worker
	worker.stat.type=status
	worker.stat.read_only=true
	worker.stat.user=admin
	# Your AJP worker configuration
	worker.WORKER_NAME.type=ajp13
	worker.WORKER_NAME.host=localhost
	worker.WORKER_NAME.port=8109
	worker.WORKER_NAME.socket_timeout=120
	worker.WORKER_NAME.socket_keepalive=true
  

Note

In example above you can change WORKERNAME to any value.

  1. Place this file in the same directory as the mod_jk.conf file.

  2. Update the virtual host configuration:

        <VirtualHost *:80>
                ServerName      Enter your server DNS name here
                RedirectMatch	permanent "^/?$" "/portal/"
		ProxyRequests   Off
                JkMount         /*	WORKER_NAME
        </VirtualHost>