Resin Load Balancing

From Resin 3.0

Jump to: navigation, search
40px-Edit-clear.png This article requires cleanup and may refer to a legacy version of Resin.

Please visit for the most up-to-date documentation.

When your load reaches more than one application server can handle, you need a HTTP load balancer to distribute the load to the application servers. Resin's own load balancing, combined with its proxy cache support, makes it a solid choice for the load balancer as well as the backend servers.

resin.xml for load balancing

  • single configuration file: one cluster for the web server and one for the application servers
  • proxy cache on the web server to improve performance
  • using /var/www/webapps for the content. For other directory structures, see other examples.
  • HTTP servers using IP addresses 192.168.1.*
  • HTTP servers using IP addresses 192.168.2.*
<resin xmlns="">

  <cluster id="web-tier">
    <server id="web-a" address="" port="6800">
      <http port="80"/>


    <host id="">
      <access-log path="log/access.log"/>

      <web-app id="">

        <resin:LoadBalance cluster="app-tier"/>


  <cluster id="app-tier">
    <resin:import path="${__DIR__}/app-default.xml"/>

    <server id="app-a" address="" port="6800"/>
    <server id="app-b" address="" port="6800"/>
    <server id="app-c" address="" port="6800"/>

    <host id="">
      <web-app-deploy path="webapps/"/>
  • cluster web-tier is the HTTP cluster
  • cluster app-tier is the backend application server cluster
  • the proxy-cache on the HTTP tier caches data from the backend tier
  • the web-tier listens to port 80
  • the app-tier listens to internal cluster port 6800
  • the resin:LoadBalance forwards all content to the backend tier as a rewrite rule
  • default servlet behavior like JSP, PHP, and static file processing is included with the app-default.xml
  • /var/www/webapps contains the web-app content
Personal tools