Jetty has moved!
Jetty is a project at the Eclipse Foundation.
Homepage:http://www.eclipse.org/jetty
Downloads: http://download.eclipse.org/jetty/
Documentation:http://www.eclipse.org/jetty/documentation/current/
About:http://www.eclipse.org/jetty/about.php
Jetty Powered:http://www.eclipse.org/jetty/powered/
Contact the core Jetty developers at www.webtide.com
private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Configuring Apache mod_proxy with Jetty

The apache web server is frequently used as a server in front of a servlet container.
While there are no real technical reasons to front Jetty with apache, sometimes this is needed
for software load balancing, or to fit with a corporate infrastructure, or simply to stick with a known deployment structure.

There are 3 main alternative for connection Apache to Jetty:

  1. Using apache mod_proxy and an normal Jetty HTTP connector.
  2. Using apache mod_proxy_ajp and the Jetty AJP connector.
  3. Using apache mod_jk and the Jetty AJP connector.

Using the HTTP Connectors is greatly preferred, as Jetty performs significantly better with HTTP and the AJP protocol is poorly documented and there are many version irregularities. If AJP is to be used, the then mod_proxy_ajp module is preferred over mod_jk. Previously, the load balancing capabilities of mod_jk meant that it had to be used (tolerated), but with apache 2.2, mod_proxy_balancer is available and load balance over HTTP and AJP connectors.

mod_proxy

Apache has a mod_proxy module available for almost all versions of apache. However, prior to apache 2.2, only reverse proxy features were available and mod_proxy_balancer was not available for load balancing.

Documentation for mod_proxy is available for:

Configuration as a Reverse Proxy

The configuration file layout for apache varies greatly with version and distribution, but to configure mod_proxy as a reverse proxy, the follow configuration is key:

  1. Jetty needs to be configured with a normal HTTP connector, probably on port 8080 or similar.
  2. The proxy module (and other proxy extension used) must be loaded:
  3. Forward proxy needs to be turned off:
  4. Reverse proxy paths must be configured with URL of the jetty server:

mod_proxy_balancer

With apache 2.2 mod_proxy is an extension of the mod_proxy module and may also be used in conjunction with the mod_proxy_balancer module. Prior to 2.2, mod_proxy did not support AJP.

Configuration

The configuration of mod_proxy_ajp is identical to the Configuration of mod_proxy, except that ajp:// may be used as a protocol instead of http:// when specifying destinations (workers) in ProxyPass and BalancerMember elements.

Apache 2.2 normally bundles mod_proxy, mod_proxy_ajp and mod_proxy_balancer, so they often do not need to be installed separately. If they are separately bundled by your operation system (eg as RPMs or debians) ensure that they are installed.

The apache configuration structure can vary greatly with operating system distros and there may be some template configurations for mod_proxy. If not, add the entry below in your httpd.conf apache configuration file located in <apache-root>/conf/ directory


Where:

  • LoadModule - tells your apache server to load a module libray and where it is located.
  • ProxyPreserveHost On - keeps the original Host Header. * THIS IS HIGHLY RECOMMENDED FOR ALL PROXY CONFIGURATIONS*
  • ProxyPass - Maps a path to a proxied destination. The destination may be a http:// or ajp:// URL to directly map to a single server, or it may be a balancer:// URL to map to a cluster.
  • Proxy balancer:// - defines the nodes (workers) in the cluster. Each member may be a {http://}} or ajp:// URL or another balancer:// URL for cascaded load balancing configuration.
  • No labels
Contact the core Jetty developers at www.webtide.com
private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services from 1 day to full product delivery