下面是resin配置檔案的詳細解釋:

http://blog.chinaunix.net/uid-25892360-id-3059362.html

  1. <!-- - Resin 3.1 配置檔案. -->

  2. <resin xmlns="http://caucho.com/ns/resin" xmlns:resin="http://caucho.com/ns/resin/core">

  3. <!-- 載入resin/lib下的所有.jar檔案-->

  4. <class-loader>

  5. <tree-loader path="${resin.home}/lib"/>

  6. <tree-loader path="${resin.root}/lib"/>

  7. </class-loader>

  8. <!-- - 管理配置 -->

  9. <management path="${resin.root}/admin">

  10. </management>

  11. <!-- -JDK日誌介面的配置. -->

  12. <log name="" path="stdout:" timestamp="[%H:%M:%S.%s] "/>

  13. <!-- 日誌資訊的級別:'info' 生產環境 'fine' 開發環境 'finer' 除錯環境 -->

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

  15. <logger name="com.caucho.java" level="config"/>

  16. <logger name="com.caucho.loader" level="config"/>

  17. <!-- - 環境上下文的檢測時間,對於生產站點, 這個要設定長一點,例如600秒,10分鐘 -->

  18. <dependency-check-interval>2s</dependency-check-interval>

  19. <!-- - 傳送郵件通知的SMTP伺服器 -->

  20. <system-property mail.smtp.host="127.0.0.1"/>

  21. <system-property mail.smtp.port="25"/>

  22. <!-- - 你可以把編譯器改成 "javac", "eclipse" 或者 "internal". -->

  23. <javac compiler="internal" args="-source 1.5"/>

  24. <!-- Security providers.

  25. - <security-provider>

  26. - com.sun.net.ssl.internal.ssl.Provider

  27. - </security-provider>

  28. -->

  29. <!-- 去掉註釋,如果你使用resin提供的xml應用

  30. -

  31. - <system-property javax.xml.parsers.DocumentBuilderFactory

  32. - ="com.caucho.xml.parsers.XmlDocumentBuilderFactory"/>

  33. - <system-property javax.xml.parsers.SAXParserFactory

  34. - ="com.caucho.xml.parsers.XmlSAXParserFactory"/>

  35. -->

  36. <cluster id="app-tier">

  37. <!-- 設定叢集上下文的根, 相對於server.root -->

  38. <root-directory>.</root-directory>

  39. <server-default>

  40. <!-- HTTP服務的埠-->

  41. <http address="*" port="8080"/>

  42. <!--

  43. - SSL埠配置:

  44. -

  45. - <http address="*" port="8443">

  46. - <openssl>

  47. - <certificate-file>keys/gryffindor.crt</certificate-file>

  48. - <certificate-key-file>keys/gryffindor.key</certificate-key-file>

  49. - <password>test123</password>

  50. - </openssl>

  51. - </http>

  52. -->

  53. <!-- - JVM引數設定 -->

  54. <jvm-arg>-Xmx256m</jvm-arg>

  55. <jvm-arg>-Xss1m</jvm-arg>

  56. <jvm-arg>-Xdebug</jvm-arg>

  57. <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>

  58. <!-- Uncomment to enable admin heap dumps 去掉這個如果你想管理記憶體堆的傾倒

  59. - <jvm-arg>-agentlib:resin</jvm-arg>

  60. -->

  61. <watchdog-arg>-Dcom.sun.management.jmxremote</watchdog-arg>

  62. <!-- 強制resin強制重起時的最小空閒記憶體 -->

  63. <memory-free-min>1M</memory-free-min>

  64. <!-- 最大執行緒數量. -->

  65. <thread-max>256</thread-max>

  66. <!-- 套接字等待時間 -->

  67. <socket-timeout>65s</socket-timeout>

  68. <!-- 配置 keepalive -->

  69. <keepalive-max>128</keepalive-max>

  70. <keepalive-timeout>15s</keepalive-timeout>

  71. <!-- - 如果使用的是UNIX,這裡是啟動的帳號和使用者組.

  72. - <user-name>resin</user-name>

  73. - <group-name>resin</group-name>

  74. -->

  75. </server-default>

  76. <!-- 定義群集伺服器 -->

  77. <server id="" address="127.0.0.1" port="6800"/>

  78. <!-- Configures the persistent store for single-server or clustered 配置獨立伺服器或者群集的持久化儲存,專業版的功能 -->

  79. <resin:if test="${resin.isProfessional()}">

  80. <persistent-store type="cluster">

  81. <init path="session"/>

  82. </persistent-store>

  83. </resin:if>

  84. <!-- 為了安全, 你可以為SSL會話(SSL sessions)定義一個不同的cookie.

  85. - <ssl-session-cookie>SSL_JSESSIONID</ssl-session-cookie>

  86. -->

  87. <!-- 快取啟用 (專業版的功能) -->

  88. <resin:if test="${isResinProfessional}">

  89. <cache path="cache" memory-size="64M">

  90. <!-- Vary header rewriting for IE -->

  91. <rewrite-vary-as-private/>

  92. </cache>

  93. </resin:if>

  94. <!-- 啟用週期性的伺服器狀態檢查和死鎖檢查,所有的伺服器可以新增 <url> 來檢查。 -->

  95. <resin:if test="${isResinProfessional}">

  96. <ping>

  97. <!-- <url>http://localhost:8080/test-ping.jsp</url> -->

  98. </ping>

  99. </resin:if>

  100. <!-- 包含web應用的預設行為 -->

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

  102. <!-- 每一個web應用的預設引數 -->

  103. <web-app-default>

  104. <!-- 擴充套件庫的公共jar檔案,擴充套件是安全的即使沒有類裝載器知道的jars,裝載的類將為每個應用分別裝載,也就是這些類都是不同的 -->

  105. <class-loader>

  106. <tree-loader path="${server.root}/ext-webapp"/>

  107. </class-loader>

  108. <!-- 設定快取頁、靜態也的延時值 -->

  109. <cache-mapping url-pattern="/" expires="5s"/>

  110. <cache-mapping url-pattern="*.gif" expires="60s"/>

  111. <cache-mapping url-pattern="*.jpg" expires="60s"/>

  112. <cache-mapping url-pattern="*.png" expires="60s"/>

  113. <!-- 啟用EL表示式 -->

  114. <allow-servlet-el/>

  115. <!-- 安全原因, 預設禁用了會話的URLs -->

  116. <session-config>

  117. <enable-url-rewriting>false</enable-url-rewriting>

  118. </session-config>

  119. <!-- 安全原因, 在cookies中設定HttpOnly標誌

  120. - <cookie-http-only/>

  121. -->

  122. <!--一些JSP包有不正確的 .tld檔案。可以把validate-taglib-schema設定成false,可能繼續正常工作

  123. - Some JSP packages have incorrect .tld files. It's possible to set validate-taglib-schema to false to work around these packages.

  124. -->

  125. <jsp>

  126. <validate-taglib-schema>true</validate-taglib-schema>

  127. <fast-jstl>true</fast-jstl>

  128. <fast-jsf>true</fast-jsf>

  129. </jsp>

  130. </web-app-default>

  131. <!-- 簡單的資料池配置

  132. - The JDBC name is java:comp/env/jdbc/test

  133. <database>

  134. <jndi-name>jdbc/mysql</jndi-name>

  135. <driver type="org.gjt.mm.mysql.Driver">

  136. <url>jdbc:mysql://localhost:3306/test</url>

  137. <user></user>

  138. <password></password>

  139. </driver>

  140. <prepared-statement-cache-size>8</prepared-statement-cache-size>

  141. <max-connections>20</max-connections>

  142. <max-idle-time>30s</max-idle-time>

  143. </database>

  144. -->

  145. <!-- 定義所有虛擬主機的預設配置 -->

  146. <host-default>

  147. <!-- 如果和別的web伺服器整合,這個可以被去掉,因為web伺服器也可以記錄這些資訊。 -->

  148. <access-log path="logs/access.log" format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"' rollover-period="1W"/>

  149. <!-- war 檔案的佈置目錄 -->

  150. <web-app-deploy path="webapps"/>

  151. <!-- ear檔案的佈置目錄 -->

  152. <ear-deploy path="deploy">

  153. <ear-default>

  154. <ejb-server>

  155. <config-directory>WEB-INF</config-directory>

  156. <data-source>jdbc/test</data-source>

  157. </ejb-server>

  158. </ear-default>

  159. </ear-deploy>

  160. <!-- rar檔案的佈置目錄 -->

  161. <resource-deploy path="deploy"/>

  162. </host-default>

  163. <!-- 虛擬主機的佈置目錄 -->

  164. <host-deploy path="hosts">

  165. <host-default>

  166. <resin:import path="host.xml" optional="true"/>

  167. </host-default>

  168. </host-deploy>

  169. <!-- 預設的虛擬主機配置 -->

  170. <host id="" root-directory=".">

  171. <!-- 配置預設的應用 webapp's ROOT -->

  172. <web-app id="/" root-directory="webapps/ROOT"/>

  173. <web-app id="/resin-admin" root-directory="${resin.home}/php/admin">

  174. <!-- - 管理應用程式 /resin-admin

  175. - password is the md5 hash of the password。md5碼的密碼。

  176. - localhost is true to limit access to the localhost。localhost設定成true,這樣只有localhost才能訪問

  177. -->

  178. <prologue>

  179. <resin:set var="resin_admin_user" value=""/>

  180. <resin:set var="resin_admin_password" value=""/>

  181. <resin:set var="resin_admin_external" value="false"/>

  182. </prologue>

  183. </web-app>

  184. </host>

  185. </cluster>

  186. <!-- - Configuration for the web-tier/load-balancer -->

  187. <resin:if test="${resin.isProfessional()}">

  188. <cluster id="web-tier">

  189. <server-default>

  190. <!-- The http port -->

  191. <http address="*" port="9080"/>

  192. </server-default>

  193. <server id="web-a" address="127.0.0.1" port="6700"/>

  194. <cache path="cache" memory-size="64M"/>

  195. <host id="">

  196. <web-app id="/">

  197. <rewrite-dispatch>

  198. <load-balance regexp="" cluster="app-tier"/>

  199. </rewrite-dispatch>

  200. </web-app>

  201. </host>

  202. </cluster>

  203. </resin:if>

  204. </resin>

關鍵配置解釋:


  1. http://hi.baidu.com/athlonzeng/blog/item/eaea0b3ffa5b32eb55e7232c.html

  2. 3.1 資料庫連線池配置

  3. 如果應用使用資料庫連線池,查詢<caucho.com>,在其後加入資料庫連線池的配置資訊如下:

  4. SQL SERVER

  5. ==================================================================

  6. <resource-ref>

  7. <res-ref-name>jdbc/job36_use</res-ref-name>

  8. <res-type>javax.sql.DataSource</res-type>

  9. <init-param driver-name="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>

  10. <init-param url="jdbc:microsoft:sqlserver://192.168.3.84:1433;create=true;DatabaseName=CRM"/>

  11. <init-param user="sa"/>

  12. <init-param password="job36"/>

  13. <init-param max-connections="10"/>

  14. <init-param enable-transaction="true"/>

  15. </resource-ref>


  16. ORACLE

  17. ==================================================================

  18. <resource-ref>

  19. <res-ref-name>jdbc/job36</res-ref-name>

  20. <res-type>javax.sql.DataSource</res-type>

  21. <init-param driver-name="oracle.jdbc.driver.OracleDriver"/>

  22. <init-param url="jdbc:oracle:thin:@192.168.3.84:1521:CRM"/>

  23. <init-param user="job36"/>

  24. <init-param password="job36"/>

  25. <init-param max-connections="10"/>

  26. <init-param enable-transaction="false"/>

  27. </resource-ref>

  28. 注意:如果要訪問資料庫,請先確認RESIN安裝目錄下lib資料夾有相應資料庫的JDBC驅動,如mssqlserver.jar或oracle_jdbc.jar等,否則請先將驅動檔案拷貝到該目錄,不然無法訪問資料庫。

  29. <res-ref-name>欄位為連線池名字,要與業務應用配置相同;

  30. <init-param url>欄位為資料庫連線字串,藍色部分為資料庫伺服器IP:PORT、資料庫名或SID。<init-param user>資料庫使用者名稱。

  31. <init-param password>密碼。

  32. <init-param max-connections>欄位為連線池最大連線個數,這個資料對基於WEB的資料庫應用效能有一定影響,建議配置數為10~40(資料庫應用較多時配置應偏小,網頁應用較多時應偏大)。


  33. 3.2 服務埠配置

  34. 查詢<http port='8080'/>,藍色字串即為埠號,根據實際應用修改。

  35. 如果需要在一臺伺服器上啟動多個resin服務,請按相應規劃各應用埠號在每個resin安裝目錄的配置檔案中配置該項,不可重複。


  36. 3.3 更新類間隔時間

  37. <class-update-interval>60s</class-update-interval>,藍色字元為配置項,單位為秒。

  38. Class- update-interval欄位對RESIN服務效能影響較大,請根據需求更改,建議配置原則為:在開發環境,設為2或更小,這樣有利於 及時反映程式的修改對應用造成的改變;生產環境建議配置最小60,根據生產環境的特點,不可能有頻繁的類改動或是JAVA指令碼改變,或者根本不會有改動, 所以依據實際情況,設定為60~3600。


  39. 3.4 最大程式數

  40. <thread-max>20</thread-max>,藍色字元為配置項。

  41. Thread-max欄位為RESIN服務最大接收處理的程式個數,為了達到較好的效能輸出,建議該項配置值為3.1連線池中max-connections引數的1倍。即,如果連線池max-connections設為10,那麼就將thread-max設為20。

  42. #resin.3.1版本安裝之後預設是1024,我改成了1024*20=20480.(zixun)

  43. 3.5 保持活動程式數

  44. <thread-keepalive id='19'/>,藍色字元為配置項。

  45. Thread-keepalive欄位為RESIN服務保持連結活動性的最大個數,它的值一定要小於3.4節中thread-max的值,否則RESIN無法啟動。該項無建議值。


  46. 3.6 請求超時時長

  47. <request-timeout id='65s'/>,藍色字元為配置項,單位為秒。

  48. Request-timeout欄位為RESIN服務返回請求連結超時的時間,預設即可。


  49. 3.7 接收連結緩衝大小

  50. <accept-buffer-size id='500'/>,藍色字元為配置項。

  51. Accept-buffer-size id欄位為RESIN服務在滿程式數下接收等待程式緩衝的個數,根據伺服器、網路情況而定,無建議值。


  52. 3.8 快取檔案過期時間

  53. <cache-mapping url-pattern='/' expires='2s'/>,藍色字元為配置項。

  54. RESIN 執行中把被訪問檔案資料進行快取(預設快取目錄為RESIN安裝目錄下的cache目錄,可在<cache dir='cache' size='1024' entries='8192'/>欄位修改為指定路徑),以便更加有效率的工作,Cache-mapping url-pattern欄位為RESIN服務保持快取檔案有效性的時間,開發環境推薦配置為預設值2,生產環境建議配置較大值,比如15或30。本配置基 於應用,增加快取有效時間,在有較多相同頁面服務時減少了伺服器的業務邏輯,轉而利用磁碟緩衝檔案提供資料;但是如果在固定時間長度裡(比如10分鐘)相 同頁面的請求率很小或甚至沒有相同的請求時,會增加一次快取檔案匹配動作,反而降低了伺服器效率。因此,在特殊的應用中,可以將本配置項設為2,或注 釋<cache dir='cache' size='1024' entries='8192'/>,取消快取功能。


  55. 3.9 虛擬主機設定


  56. 3.9.1 預設文件設定

  57. <welcome-file-list>index.xtp, index.jsp, index.html</welcome-file-list>.

  58. Wecome- file-list欄位為預設文件的檔案列表。預設文件是在客戶端訪問Web伺服器,比如RESIN,時如果沒有制定要訪問的檔案(即輸入 URL為目錄名而不是具體的檔名,如:http://localhost:8080/),此時RESIN會根據該欄位的值來搜尋URL訪問目錄查詢匹配 檔案,如果找到檔案則返回給使用者而不需使用者輸入全部的URL,比如:http://localhost:8080/index.html。

  59. 該配置項一般用來設定預設主頁。


  60. 3.9.2 主機ID

  61. <host id=''>.

  62. Host id欄位在單主機環境、一臺伺服器需要啟動多個不同的RESIN服務時不用配置,請保持預設的空值。只有當與其他web伺服器,比如apache等,同時使用時,考慮改配置項。


  63. 3.9.3 日誌

  64. <!--access-log id='logs/access.log'

  65. format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'

  66. rollover-period='1W'/-->

  67. <error-log id='logs/error.log'/>,藍色字元為配置項。

  68. ? access-log id欄位為RESIN記錄執行時訪問日誌,該日誌在單獨伺服器情況下不推薦使用,就算在混合伺服器情況下(比如IIS、APACHE等)也不推薦,除非要分析個伺服器的訪問情況。如果不使用註釋該段即可(加入紅色部分程式碼)。

  69. ? error-log id欄位為RESIN錯誤日誌,建議使用預設值。日誌儲存在RESIN安裝目錄的logs資料夾裡。


  70. 3.9.4 虛擬目錄

  71. 在<host></host>欄位中加入<web-app id='/test’ app-dir='C:\webapp'/>,藍色字元為配置項。

  72. Web-app id欄位為RESIN虛擬目錄名,app-dir欄位為本地路徑值。

  73. 例如:上面的配置實現了將http://localhost:8080/test/ 對映到了伺服器本地的c:\webapp目錄,該目錄內容應為web應用的程式碼或指令碼。


  74. 4 單伺服器多resin服務的配置

  75. 在某些應用中,會用到單伺服器多resin服務的配置,也就是在一臺伺服器上需要使用多個不同的resin服務,比如一個WEB網站的resin,一個語音IVR或簡訊SM的resin,此時的配置除了第三章所講的,還要注意以下幾點:

  76. 1. Host id欄位保留預設配置。

  77. 2. 各resin配置檔案的http port值不可相同,請按照系統規劃的埠號進行相應配置。

  78. 3. 各resin配置檔案的<srun host=’127.0.0.1’ port=’6802’>中的port值不可相同,該值可以任意配置,但要保持與其他埠沒有衝突,推薦遞增配置,比如6802、6803等,因為一般680x不會被使用。

  79. 4. 在配置完成後,觀察resin啟動介面(dos介面),確認以下兩項沒有出現:

  80. ? http can’t bind to *:8080 (提示中的8080可能是別的數字,該提示說明http埠號有衝突,請檢查http port欄位的值)

  81. ? srun can’t bind to port 127.0.0.1:6802 (提示中的6802可能是別的數字,該提示說明127.0.0.1的埠有衝突,請檢查srun欄位的port值)

  82. 5. 手工輸入地址測試是否正常。

  83. 配置完成。