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.
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: "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" . Resin-IoC initialization can be used to set bean parameters in the custom class. allows for custom logging. Applications can extend a custom class from<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> <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.
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.
<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> <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. element host-alias { string } <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. <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. element host-alias-regexp { string } <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.
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 .<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. 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.
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. <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. <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. 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. element secure-host-name { string } <startup-mode> configures the virtual-host's behavior on Resin startup, either "automatic", "lazy" or "manual".
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. <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. <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 .<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.
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. <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.
|