Cluster with Two Servers

From Resin 3.0

Revision as of 17:34, 21 October 2011 by Pcowan (Talk | contribs)
Jump to: navigation, search


This is a basic Resin configuration with two servers in a single cluster. Since this configuration does not have a load balance tier, it needs a load balancer (Resin, Apache or hardware) to work properly.

  • The two servers act as backups for each other for clustering purposes, because they form

the first two clusters of a triad. The two servers check each others heartbeats, record statistics and save each others statistics and error logs.

  • Each server listens to HTTP port 8080 and serves web-apps from the webapps directory.

The root web-app would be in webapps/ROOT, for example. Standard servlet behavior and jsp and php support is enabled with the <resin:import> of app-default.xml.

  • JDK logging goes to stdout, which goes to jvm-a.log and jvm-b.log as managed by

the watchdog.

  • Proxy caching is enabled to improve performance.
  • The /resin-admin is enabled. Passwords belong in ${resin.home}/conf/admin-users.xml

resin.xml configuration

 <resin xmlns="http://caucho.com/ns/resin"
        xmlns:resin="urn:java:com.caucho.resin">

   <log-handler name="" level="all" path="stdout:"
                timestamp="[%y-%m-%d %H:%M:%S.%s] "/>

   <logger name="com.caucho" level="info"/>

   <resin:AdminAuthenticator>
     <resin:import path="${__DIR__}/admin-users.xml" optional="true"/>
   </resin:AdminAuthenticator>
  
   <cluster id="my-cluster">
     <server-default>
       <http port="8080"/>
     </server-default>

     <server id="a" address="192.168.1.10" port="6800"/>
     <server id="b" address="192.168.1.11" port="6801"/>

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

     <development-mode-error-page/>
 
     <proxy-cache memory-size="64M"/>

     <resin:DeployService/>
     <resin:JmxService/>
     <resin:LogService/>
     <resin:StatService/>
 
     <host id="">
       <access-log path="log/access.log"
                   format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
                   rollover-period="1W"/>

       <web-app-deploy path="webapps"/>
 
       <web-app id="/resin-admin" root-directory="${resin.root}/doc/admin">
         <prologue>
           <resin:set var="resin_admin_external" value="false"/>
           <resin:set var="resin_admin_insecure" value="true"/>
         </prologue>
       </web-app>

     </host>
   </cluster>
 </resin>
Personal tools