|  | Resin Documentationapp server | 
| <host>: virtual host configuration
 Describes the virtual host configuration tags. 
 child of <cluster>,<host>,<web-app> <access-log> configures the access log file. As a child of <web-app>, overrides the definition in the <host> that the web-app is deployed in. As a child of <host>, overrides the definition in the <server> that the host is in. 
 <access-log> schema 
element access-log {
  auto-flush?
  & archive-format?
  & auto-flush-time?
  & exclude?
  & format?
  & path?
  & rollover-count?
  & rollover-period?
  & rollover-size?
  & init?
}
The default archive format is + ".%Y%m%d" or + ".%Y%m%d.%H" if rollover-period < 1 day. The access log formatting variables follow the Apache variables: 
 The default format is: default access log format 
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
allows for custom logging. Applications can extend a custom class from . Resin-IoC initialization can be used to set bean parameters in the custom class. Example: <access-log> in host configuration 
<resin xmlns="http://caucho.com/ns/resin">
<cluster id="app-tier">
  <host id="">
    <access-log path='log/access.log'>
      <rollover-period>2W</rollover-period>
    </access-log>
  </host>
</cluster>
</resin>
Example: custom access log 
<resin xmlns="http://caucho.com/ns/resin">
<cluster id="app-tier">
  <host id='foo.com'>
    <access-log resin:type='test.MyLog'>
               path='${resin.root}/foo/error.log'
               rollover-period='1W'>
      <init>
        <foo>bar</foo>
      </init>
    </access-log>
    ...
  </host>
</cluster>
</resin>
child of <host>,<web-app> Specifies ear expansion. ear-deploy can be used in web-apps to define a subdirectory for ear expansion. 
 <ear-deploy> schema 
element ear-deploy {
  path
  & archive-directory?
  & ear-default?
  & expand-cleanup-fileset?
  & expand-directory?
  & expand-path?
  & expand-prefix?
  & expand-suffix?
  & lazy-init?
  & redeploy-mode?
  & require-file*
  & url-prefix?
}
child of <cluster>,<host>,<webapp> <error-page> defines a web page to be displayed when an error occurs outside of a web-app. Note, this is not a default error-page, i.e. if an error occurs inside of a <web-app>, the error-page for that web-app will be used instead. See webapp: error-page. child of <cluster> <host> configures a virtual host. Virtual hosts must be configured explicitly. 
 Example: explicit host in resin.conf 
<resin xmlns="http://caucho.com/ns/resin">
<cluster id="">
<host host-name="www.foo.com">
  <host-alias>foo.com</host-alias>
  <host-alias>web.foo.com</host-alias>
  <root-directory>/opt/www/www.foo.com</root-directory>
  <web-app id="/" document-directory="webapps/ROOT">
    
  </web-app>
  ...
</host>
</cluster>
</resin>
Example: regexp host in resin.conf 
<resin xmlns="http://caucho.com/ns/resin">
<cluster id="">
<host regexp="([^.]+)\.foo\.com">
  <host-name>${host.regexp[1]}.foo.com</host-name>
  <root-directory>/var/www/hosts/www.${host.regexp[1]}.com</root-directory>
  ...
</host>
</cluster>
</resin>
It is recommended that any <host> using a regexp include a <host-name> to set the canonical name for the host. <host-alias> defines a URL alias for matching HTTP requests. Any number of <host-alias> can be used for each alias. The host-alias can be used either in the resin.conf or in a host.xml when use host-deploy together with resin:import. <host-alias> schema 
element host-alias {
  string
}
Example: host-alias in the resin.conf 
<resin xmlns="http://caucho.com">
<cluster id="">
  <host id="www.foo.com" root-directory="/var/www/foo.com">
    <host-alias>foo.com</host-alias>
    <web-app id=""/>
  </host>
</cluster>
</resin>
Since the <host-deploy> and <host> tags lets you add a host.xml file to customize configuration, the <host-alias> can also fit in the custom host.xml page. Example: host-alias in a /var/www/hosts/foo/host.xml <host xmlns="http://caucho.com"> <host-name>www.foo.com</host-name> <host-alias>foo.com</host-alias> <web-app id="" root-directory="htdocs"/> </host> <host-alias-regexp> defines a regular expression for matching URLs for a given virtual host. <host-alias-regexp> schema 
element host-alias-regexp {
  string
}
Example: host-alias-regexp in the resin.conf 
<resin xmlns="http://caucho.com">
<cluster id="">
  <host id="www.foo.com" root-directory="/var/www/foo.com">
    <host-alias-regexp>.*foo.com</host-alias-regexp>
    <web-app id=""/>
  </host>
</cluster>
</resin>
child of <cluster> <host-default> configures defaults for a virtual host. The host-default can contain any of the host configuration tags. It will be used as defaults for any virtual host. child of <cluster> <host-deploy> configures an automatic deployment directory for virtual host. 
 <host-deploy> schema 
element host-deploy {
  archive-directory?
  & expand-cleanup-fileset?
  & expand-directory?
  & host-default?
  & host-name?
  & path?
}
The following example configures as a host deployment directory. Each virtual host will have a directory for .war deployment. So the directory would serve the URL . <host-deploy> 
<resin xmlns="http://caucho.com/ns/resin">
  <cluster id="app-tier">
    <root-directory>/var/www</root-directory>
    <host-deploy path="hosts">
      <host-default>
        <resin:import path="host.xml" optional="true"/>
        <web-app-deploy path="webapps"/>
      </host-default>
    </host-deploy>
  </cluster>
</resin>
<host-name> defines the canonical name for a virtual host. The <host-name> will be used in Resin's logging, management, and is available in the host's variables. <host-host> schema 
element host-name {
  string
}
<redeploy-mode> configures the virtual-host's behavior when it detects changes in configuration files or classes. The <dependency-check-interval> controls how often the virtual host will check for updates. 
 <restart-mode> schema 
element startup-mode {
  string
}
child of <resin>,<cluster>,<host>,<web-app> All Resource tags are available to the <host>, for example, resources like <database> or <authenticator>. Resources defined at the host level are available for all web-apps in the host. Example: shared database in host 
<resin xmlns="http://caucho.com/ns/resin">
  <cluster id="app-tier">
     <server id="a" .../>
     <host id="www.foo.com">
        <database jndi-name="jdbc/test">
            <driver type="org.postgresql.Driver">
                <url>jdbc:postgresql://localhost/test</url>
                <user>caucho</user>
            </driver>
        </database>
        <web-app-default path="webapps"/>
    </host>
  </cluster>
</resin>
child of <cluster>,<host>,<web-app> <rewrite-dispatch> defines a set of rewriting rules for dispatching and forwarding URLs. Applications can use these rules to redirect old URLs to their new replacements. See rewrite-dispatch for more details. rewrite-dispatch 
<resin xmlns="http://caucho.com/ns/resin">
  <cluster id="app-tier">
    <host host-name="www.foo.com">
      <rewrite-dispatch>
        <redirect regexp="^/foo" target="/index.php?foo="/>
      </rewrite-dispatch>
    </host>
  </cluster>
</resin>
<root-directory> configures the virtual host's filesystem root. Because the virtual host's root will typically contain non-public files like log files, all web-apps should have a path below the host. <root-directory> schema 
element root-directory {
  string
}
<secure-host-name> sets a host-name or URL to be used for secure redirection. For some security configurations, Resin needs to redirect from an insecure site to a secure one. The <secure-host-name> configures the host to redirect to. See Resin security. <secure-host-name> schema 
element secure-host-name {
  string
}
<startup-mode> configures the virtual-host's behavior on Resin startup, either "automatic", "lazy" or "manual". 
 <startup-mode> schema 
element startup-mode {
  string
}
child of <host>,<web-app> <web-app> configures a web application. 
 When specified by , the application will be initialized on server start. When specified by , the application will be initialized at the first request. This means that servlets may start later than expected for applications. The following example creates a web-app for /apache using the Apache htdocs directory to serve pages. Example: custom web-app root <resin xmlns="http://caucho.com/ns/resin"> <cluster id="app-tier"> <host id=''> <web-app id='/apache' root-directory='/usr/local/apache/htdocs'> ... </host> </cluster> </resin> The following example sets the root web-app to the IIS root directory. Example: IIS root directory <resin xmlns="http://caucho.com/ns/resin"> <cluster id="app-tier"> <host id=''> <web-app id='/' root-directory='C:/inetpub/wwwroot'> </host> </cluster> </resin> When the is specified with a , can use replacement variables (). In the following, each user gets his or her own independent application using . Example: web-app root based on regexps 
<resin xmlns="http://caucho.com/ns/resin">
<cluster id="app-tier">
  <host id=''>
    <web-app url-regexp='/~([^/]*)'
             root-directory='/home/$1/public_html'>
    ...
    </web-app>
</host>
</cluster>
</resin>
child of <cluster>,<host>,<web-app> <web-app-default> configures common values for all web applications. child of <host>,<web-app> Specifies war expansion. web-app-deploy can be used in web-apps to define a subdirectory for war expansion. The tutorials in the documentation use web-app-deploy to allow servlet/tutorial/helloworld to be an independent war file. 
 <web-app-deploy> schema 
element web-app-deploy {
  archive-directory?
  & expand-cleanup-fileset?
  & expand-directory?
  & expand-prefix?
  & expand-suffix?
  & path?
  & redeploy-check-interval?
  & redeploy-mode?
  & require-file*
  & startup-mode?
  & url-prefix?
  & versioning?
  & web-app-default*
  & web-app*
}
Overriding web-app-deploy configurationThe web-app-deploy can override configuration for an expanded war with a matching <web-app> inside the <web-app-deploy>. The <document-directory> is used to match web-apps. Example: resin.conf overriding web.xml 
<resin xmlns="http://caucho.com/ns/resin">
<cluster id="">
<host id="">
<web-app-deploy path="webapps">
  <web-app context-path="/wiki"
              document-directory="wiki">
    <context-param database="jdbc/wiki">
  </web-app>
</web-app-deploy>
</host>
</cluster>
</resin>
versioningThe versioning attribute of the <web-app-deploy> tag improves web-app version updates by enabling a graceful update of sessions. The web-apps are named with numeric suffixes, e.g. foo-10, foo-11, etc, and can be browsed as /foo. When a new version of the web-app is deployed, Resin continues to send current session requests to the previous web-app. New sessions go to the new web-app version. So users will not be aware of the application upgrade. 
 
 |