1<!--
2   - Resin 3.1 configuration file.
3  -->
4<resin xmlns="http://caucho.com/ns/resin"
5       xmlns:resin="http://caucho.com/ns/resin/core">
6
7  <!-- adds all .jar files under the resin/lib directory -->
8  <class-loader>
9    <tree-loader path="${resin.home}/ext-lib"/>
10    <tree-loader path="${resin.root}/ext-lib"/>
11
12    <tree-loader path="${resin.home}/lib"/>
13    <tree-loader path="${resin.root}/lib"/>
14  </class-loader>
15
16  <!--
17     - Management configuration
18     -
19     - Remote management requires at least one enabled admin user.
20    -->
21  <management path="${resin.root}/admin">
22    <user name="admin" password="password" disable="true"/>
23
24    <resin:if test="${resin.professional}">
25      <deploy-service/>
26      <jmx-service/>
27      <log-service/>
28      <xa-log-service/>
29    </resin:if>
30  </management>
31
32  <!--
33     - Logging configuration for the JDK logging API.
34    -->
35  <log name="" level="info" path="stdout:"
36       timestamp="[%H:%M:%S.%s] {%{thread}} "/>
37
38  <!--
39     - 'info' for production
40     - 'fine' or 'finer' for development and troubleshooting
41    -->
42  <logger name="com.caucho" level="info"/>
43
44  <logger name="com.caucho.java" level="config"/>
45  <logger name="com.caucho.loader" level="config"/>
46
47  <!--
48     - For production sites, change dependency-check-interval to something
49     - like 600s, so it only checks for updates every 10 minutes.
50    -->
51  <dependency-check-interval>2s</dependency-check-interval>
52
53  <!--
54     - SMTP server for sending mail notifications
55    -->
56  <system-property mail.smtp.host="127.0.0.1"/>
57  <system-property mail.smtp.port="25"/>
58
59  <!--
60     - Sets the default character encoding to utf-8
61     -
62     - <character-encoding>utf-8</character-encoding>
63    -->
64
65  <!--
66     - You can change the compiler to "javac", "eclipse" or "internal".
67    -->
68  <javac compiler="internal" args="-source 1.5"/>
69
70  <!-- Security providers.
71     - <security-provider>
72     -    com.sun.net.ssl.internal.ssl.Provider
73     - </security-provider>
74    -->
75
76  <!-- Uncomment to use Resin's XML implementations
77     -
78     - <system-property javax.xml.parsers.DocumentBuilderFactory
79     -                 ="com.caucho.xml.parsers.XmlDocumentBuilderFactory"/>
80     - <system-property javax.xml.parsers.SAXParserFactory
81     -                 ="com.caucho.xml.parsers.XmlSAXParserFactory"/>
82    -->
83
84  <cluster id="app-tier">
85    <!-- sets the content root for the cluster, relative to server.root -->
86    <root-directory>.</root-directory>
87
88    <server-default>
89      <!-- The http port -->
90      <http address="*" port="8080"/>
91
92      <!--
93         - SSL port configuration:
94         -
95         - <http address="*" port="8443">
96         -   <openssl>
97         -     <certificate-file>keys/gryffindor.crt</certificate-file>
98         -     <certificate-key-file>keys/gryffindor.key</certificate-key-file>
99         -     <password>test123</password>
100         -   </openssl>
101         - </http>
102        -->
103
104      <!--
105         - The JVM arguments
106        -->
107      <jvm-arg>-Xmx256m</jvm-arg>
108      <jvm-arg>-Xss1m</jvm-arg>
109      <jvm-arg>-Xdebug</jvm-arg>
110      <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
111
112      <!--
113         - Uncomment to enable admin heap dumps
114         - <jvm-arg>-agentlib:resin</jvm-arg>
115        -->
116
117      <!--
118         - arguments for the watchdog process
119        -->
120      <watchdog-jvm-arg>-Dcom.sun.management.jmxremote</watchdog-jvm-arg>
121      <watchdog-port>6600</watchdog-port>
122
123      <!--
124         - Configures the minimum free memory allowed before Resin
125         - will force a restart.
126        -->
127      <memory-free-min>1M</memory-free-min>
128
129      <!-- Maximum number of threads. -->
130      <thread-max>256</thread-max>
131
132      <!-- Configures the socket timeout -->
133      <socket-timeout>65s</socket-timeout>
134
135      <!-- Configures the keepalive -->
136      <keepalive-max>128</keepalive-max>
137      <keepalive-timeout>15s</keepalive-timeout>
138
139      <!--
140         - If starting bin/resin as root on Unix, specify the user name
141         - and group name for the web server user.
142         -
143         - <user-name>resin</user-name>
144         - <group-name>resin</group-name>
145        -->
146    </server-default>
147
148    <!-- define the servers in the cluster -->
149    <server id="" address="127.0.0.1" port="6800"/>
150
151    <!--
152       - Configures the persistent store for single-server or clustered
153       - in Resin professional.
154      -->
155    <resin:if test="${resin.professional}">
156      <persistent-store type="cluster">
157        <init path="session"/>
158      </persistent-store>
159    </resin:if>
160
161    <!--
162       - For security, use a different cookie for SSL sessions.
163       - <ssl-session-cookie>SSL_JSESSIONID</ssl-session-cookie>
164      -->
165
166    <!--
167       - Enables the cache (available in Resin Professional)
168      -->
169    <resin:if test="${resin.professional}">
170      <cache path="cache" memory-size="64M">
171        <!-- Vary header rewriting for IE -->
172        <rewrite-vary-as-private/>
173      </cache>
174    </resin:if>
175
176    <!--
177       - Enables periodic checking of the server status and
178       - check for deadlocks..
179       -
180       - All servers can add <url>s to be checked.
181      -->
182    <resin:if test="${resin.professional}">
183      <ping>
184        <!-- <url>http://localhost:8080/test-ping.jsp</url> -->
185      </ping>
186    </resin:if>
187
188    <!--
189       - Defaults applied to each web-app.
190      -->
191    <web-app-default>
192      <prologue>
193        <!--
194           - Extension library for common jar files.  The ext is safe
195           - even for non-classloader aware jars.  The loaded classes
196           - will be loaded separately for each web-app, i.e. the class
197           - itself will be distinct.
198          -->
199        <class-loader>
200          <tree-loader path="${resin.root}/ext-webapp-lib"/>
201        </class-loader>
202
203        <!--
204           - Enable EL expressions in Servlet and Filter init-param
205          -->
206        <allow-servlet-el/>
207      </prologue>
208
209      <!--
210         - Sets timeout values for cacheable pages, e.g. static pages.
211        -->
212      <cache-mapping url-pattern="/" expires="5s"/>
213      <cache-mapping url-pattern="*.gif" expires="60s"/>
214      <cache-mapping url-pattern="*.jpg" expires="60s"/>
215      <cache-mapping url-pattern="*.png" expires="60s"/>
216
217      <!--
218         - for security, disable session URLs by default.
219        -->
220      <session-config>
221        <enable-url-rewriting>false</enable-url-rewriting>
222      </session-config>
223
224      <!--
225         - For security, set the HttpOnly flag in cookies.
226         - <cookie-http-only/>
227        -->
228
229      <!--
230         - Some JSP packages have incorrect .tld files.  It's possible to
231         - set validate-taglib-schema to false to work around these packages.
232        -->
233        <jsp>
234          <validate-taglib-schema>true</validate-taglib-schema>
235          <fast-jstl>true</fast-jstl>
236        </jsp>
237    </web-app-default>
238
239    <!-- includes the app-default for default web-app behavior -->
240    <resin:import path="/usr/local/etc/resin3/app-default.xml"/>
241
242    <!--
243       - Sample database pool configuration
244       -
245       - The JDBC name is java:comp/env/jdbc/test
246         <database>
247           <jndi-name>jdbc/mysql</jndi-name>
248           <driver type="org.gjt.mm.mysql.Driver">
249             <url>jdbc:mysql://localhost:3306/test</url>
250             <user></user>
251             <password></password>
252            </driver>
253            <prepared-statement-cache-size>8</prepared-statement-cache-size>
254            <max-connections>20</max-connections>
255            <max-idle-time>30s</max-idle-time>
256          </database>
257      -->
258
259    <!--
260       - Default host configuration applied to all virtual hosts.
261      -->
262    <host-default>
263      <!--
264         - With another web server, like Apache, this can be commented out
265         - because the web server will log this information.
266        -->
267      <access-log path="logs/access.log"
268            format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
269            rollover-period="1W"/>
270
271      <!-- creates the webapps directory for .war expansion -->
272      <web-app-deploy path="webapps"/>
273
274      <!-- creates the deploy directory for .ear expansion -->
275      <ear-deploy path="deploy">
276        <ear-default>
277          <ejb-server>
278            <config-directory>WEB-INF</config-directory>
279          </ejb-server>
280        </ear-default>
281      </ear-deploy>
282
283      <!-- creates the deploy directory for .rar expansion -->
284      <resource-deploy path="deploy"/>
285    </host-default>
286
287    <!-- configures a deployment directory for virtual hosts -->
288    <host-deploy path="hosts">
289      <host-default>
290        <resin:import path="host.xml" optional="true"/>
291      </host-default>
292    </host-deploy>
293
294    <!-- configures the default host, matching any host name -->
295    <host id="" root-directory=".">
296      <!--
297         - configures an explicit root web-app matching the
298         - webapp's ROOT
299        -->
300      <web-app id="/" root-directory="webapps/ROOT"/>
301
302      <web-app id="/resin-admin" root-directory="${resin.home}/php/admin">
303        <!--
304           - Administration application /resin-admin
305          -->
306        <prologue>
307          <resin:set var="resin_admin_external" value="false"/>
308          <resin:set var="resin_admin_insecure" value="true"/>
309        </prologue>
310      </web-app>
311    </host>
312  </cluster>
313
314  <!--
315     - Configuration for the web-tier/load-balancer
316    -->
317  <resin:if test="${resin.professional}">
318    <cluster id="web-tier">
319      <server-default>
320        <!-- The http port -->
321        <http address="*" port="9080"/>
322      </server-default>
323
324      <server id="web-a" address="127.0.0.1" port="6700"/>
325
326      <cache path="cache" memory-size="64M"/>
327
328      <host id="">
329        <web-app id="/">
330
331           <rewrite-dispatch>
332             <load-balance regexp="" cluster="app-tier"/>
333           </rewrite-dispatch>
334
335        </web-app>
336      </host>
337    </cluster>
338  </resin:if>
339</resin>
340
341