下面是resin配置檔案的詳細解釋:
http://blog.chinaunix.net/uid-25892360-id-3059362.html
-
<!-- - Resin 3.1 配置檔案. -->
-
<resin xmlns="http://caucho.com/ns/resin" xmlns:resin="http://caucho.com/ns/resin/core">
-
<!-- 載入resin/lib下的所有.jar檔案-->
-
<class-loader>
-
<tree-loader path="${resin.home}/lib"/>
-
<tree-loader path="${resin.root}/lib"/>
-
</class-loader>
-
<!-- - 管理配置 -->
-
<management path="${resin.root}/admin">
-
</management>
-
<!-- -JDK日誌介面的配置. -->
-
<log name="" path="stdout:" timestamp="[%H:%M:%S.%s] "/>
-
<!-- 日誌資訊的級別:'info' 生產環境 'fine' 開發環境 'finer' 除錯環境 -->
-
<logger name="com.caucho" level="info"/>
-
<logger name="com.caucho.java" level="config"/>
-
<logger name="com.caucho.loader" level="config"/>
-
<!-- - 環境上下文的檢測時間,對於生產站點, 這個要設定長一點,例如600秒,10分鐘 -->
-
<dependency-check-interval>2s</dependency-check-interval>
-
<!-- - 傳送郵件通知的SMTP伺服器 -->
-
<system-property mail.smtp.host="127.0.0.1"/>
-
<system-property mail.smtp.port="25"/>
-
<!-- - 你可以把編譯器改成 "javac", "eclipse" 或者 "internal". -->
-
<javac compiler="internal" args="-source 1.5"/>
-
<!-- Security providers.
-
- <security-provider>
-
- com.sun.net.ssl.internal.ssl.Provider
-
- </security-provider>
-
-->
-
<!-- 去掉註釋,如果你使用resin提供的xml應用
-
-
-
- <system-property javax.xml.parsers.DocumentBuilderFactory
-
- ="com.caucho.xml.parsers.XmlDocumentBuilderFactory"/>
-
- <system-property javax.xml.parsers.SAXParserFactory
-
- ="com.caucho.xml.parsers.XmlSAXParserFactory"/>
-
-->
-
<cluster id="app-tier">
-
<!-- 設定叢集上下文的根, 相對於server.root -->
-
<root-directory>.</root-directory>
-
<server-default>
-
<!-- HTTP服務的埠-->
-
<http address="*" port="8080"/>
-
<!--
-
- SSL埠配置:
-
-
-
- <http address="*" port="8443">
-
- <openssl>
-
- <certificate-file>keys/gryffindor.crt</certificate-file>
-
- <certificate-key-file>keys/gryffindor.key</certificate-key-file>
-
- <password>test123</password>
-
- </openssl>
-
- </http>
-
-->
-
<!-- - JVM引數設定 -->
-
<jvm-arg>-Xmx256m</jvm-arg>
-
<jvm-arg>-Xss1m</jvm-arg>
-
<jvm-arg>-Xdebug</jvm-arg>
-
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
-
<!-- Uncomment to enable admin heap dumps 去掉這個如果你想管理記憶體堆的傾倒
-
- <jvm-arg>-agentlib:resin</jvm-arg>
-
-->
-
<watchdog-arg>-Dcom.sun.management.jmxremote</watchdog-arg>
-
<!-- 強制resin強制重起時的最小空閒記憶體 -->
-
<memory-free-min>1M</memory-free-min>
-
<!-- 最大執行緒數量. -->
-
<thread-max>256</thread-max>
-
<!-- 套接字等待時間 -->
-
<socket-timeout>65s</socket-timeout>
-
<!-- 配置 keepalive -->
-
<keepalive-max>128</keepalive-max>
-
<keepalive-timeout>15s</keepalive-timeout>
-
<!-- - 如果使用的是UNIX,這裡是啟動的帳號和使用者組.
-
- <user-name>resin</user-name>
-
- <group-name>resin</group-name>
-
-->
-
</server-default>
-
<!-- 定義群集伺服器 -->
-
<server id="" address="127.0.0.1" port="6800"/>
-
<!-- Configures the persistent store for single-server or clustered 配置獨立伺服器或者群集的持久化儲存,專業版的功能 -->
-
<resin:if test="${resin.isProfessional()}">
-
<persistent-store type="cluster">
-
<init path="session"/>
-
</persistent-store>
-
</resin:if>
-
<!-- 為了安全, 你可以為SSL會話(SSL sessions)定義一個不同的cookie.
-
- <ssl-session-cookie>SSL_JSESSIONID</ssl-session-cookie>
-
-->
-
<!-- 快取啟用 (專業版的功能) -->
-
<resin:if test="${isResinProfessional}">
-
<cache path="cache" memory-size="64M">
-
<!-- Vary header rewriting for IE -->
-
<rewrite-vary-as-private/>
-
</cache>
-
</resin:if>
-
<!-- 啟用週期性的伺服器狀態檢查和死鎖檢查,所有的伺服器可以新增 <url> 來檢查。 -->
-
<resin:if test="${isResinProfessional}">
-
<ping>
-
<!-- <url>http://localhost:8080/test-ping.jsp</url> -->
-
</ping>
-
</resin:if>
-
<!-- 包含web應用的預設行為 -->
-
<resin:import path="${resin.home}/conf/app-default.xml"/>
-
<!-- 每一個web應用的預設引數 -->
-
<web-app-default>
-
<!-- 擴充套件庫的公共jar檔案,擴充套件是安全的即使沒有類裝載器知道的jars,裝載的類將為每個應用分別裝載,也就是這些類都是不同的 -->
-
<class-loader>
-
<tree-loader path="${server.root}/ext-webapp"/>
-
</class-loader>
-
<!-- 設定快取頁、靜態也的延時值 -->
-
<cache-mapping url-pattern="/" expires="5s"/>
-
<cache-mapping url-pattern="*.gif" expires="60s"/>
-
<cache-mapping url-pattern="*.jpg" expires="60s"/>
-
<cache-mapping url-pattern="*.png" expires="60s"/>
-
<!-- 啟用EL表示式 -->
-
<allow-servlet-el/>
-
<!-- 安全原因, 預設禁用了會話的URLs -->
-
<session-config>
-
<enable-url-rewriting>false</enable-url-rewriting>
-
</session-config>
-
<!-- 安全原因, 在cookies中設定HttpOnly標誌
-
- <cookie-http-only/>
-
-->
-
<!--一些JSP包有不正確的 .tld檔案。可以把validate-taglib-schema設定成false,可能繼續正常工作
-
- Some JSP packages have incorrect .tld files. It's possible to set validate-taglib-schema to false to work around these packages.
-
-->
-
<jsp>
-
<validate-taglib-schema>true</validate-taglib-schema>
-
<fast-jstl>true</fast-jstl>
-
<fast-jsf>true</fast-jsf>
-
</jsp>
-
</web-app-default>
-
<!-- 簡單的資料池配置
-
- The JDBC name is java:comp/env/jdbc/test
-
<database>
-
<jndi-name>jdbc/mysql</jndi-name>
-
<driver type="org.gjt.mm.mysql.Driver">
-
<url>jdbc:mysql://localhost:3306/test</url>
-
<user></user>
-
<password></password>
-
</driver>
-
<prepared-statement-cache-size>8</prepared-statement-cache-size>
-
<max-connections>20</max-connections>
-
<max-idle-time>30s</max-idle-time>
-
</database>
-
-->
-
<!-- 定義所有虛擬主機的預設配置 -->
-
<host-default>
-
<!-- 如果和別的web伺服器整合,這個可以被去掉,因為web伺服器也可以記錄這些資訊。 -->
-
<access-log path="logs/access.log" format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"' rollover-period="1W"/>
-
<!-- war 檔案的佈置目錄 -->
-
<web-app-deploy path="webapps"/>
-
<!-- ear檔案的佈置目錄 -->
-
<ear-deploy path="deploy">
-
<ear-default>
-
<ejb-server>
-
<config-directory>WEB-INF</config-directory>
-
<data-source>jdbc/test</data-source>
-
</ejb-server>
-
</ear-default>
-
</ear-deploy>
-
<!-- rar檔案的佈置目錄 -->
-
<resource-deploy path="deploy"/>
-
</host-default>
-
<!-- 虛擬主機的佈置目錄 -->
-
<host-deploy path="hosts">
-
<host-default>
-
<resin:import path="host.xml" optional="true"/>
-
</host-default>
-
</host-deploy>
-
<!-- 預設的虛擬主機配置 -->
-
<host id="" root-directory=".">
-
<!-- 配置預設的應用 webapp's ROOT -->
-
<web-app id="/" root-directory="webapps/ROOT"/>
-
<web-app id="/resin-admin" root-directory="${resin.home}/php/admin">
-
<!-- - 管理應用程式 /resin-admin
-
- password is the md5 hash of the password。md5碼的密碼。
-
- localhost is true to limit access to the localhost。localhost設定成true,這樣只有localhost才能訪問
-
-->
-
<prologue>
-
<resin:set var="resin_admin_user" value=""/>
-
<resin:set var="resin_admin_password" value=""/>
-
<resin:set var="resin_admin_external" value="false"/>
-
</prologue>
-
</web-app>
-
</host>
-
</cluster>
-
<!-- - Configuration for the web-tier/load-balancer -->
-
<resin:if test="${resin.isProfessional()}">
-
<cluster id="web-tier">
-
<server-default>
-
<!-- The http port -->
-
<http address="*" port="9080"/>
-
</server-default>
-
<server id="web-a" address="127.0.0.1" port="6700"/>
-
<cache path="cache" memory-size="64M"/>
-
<host id="">
-
<web-app id="/">
-
<rewrite-dispatch>
-
<load-balance regexp="" cluster="app-tier"/>
-
</rewrite-dispatch>
-
</web-app>
-
</host>
-
</cluster>
-
</resin:if>
-
</resin>
關鍵配置解釋:
-
http://hi.baidu.com/athlonzeng/blog/item/eaea0b3ffa5b32eb55e7232c.html
-
3.1 資料庫連線池配置
-
如果應用使用資料庫連線池,查詢<caucho.com>,在其後加入資料庫連線池的配置資訊如下:
-
SQL SERVER
-
==================================================================
-
<resource-ref>
-
<res-ref-name>jdbc/job36_use</res-ref-name>
-
<res-type>javax.sql.DataSource</res-type>
-
<init-param driver-name="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
-
<init-param url="jdbc:microsoft:sqlserver://192.168.3.84:1433;create=true;DatabaseName=CRM"/>
-
<init-param user="sa"/>
-
<init-param password="job36"/>
-
<init-param max-connections="10"/>
-
<init-param enable-transaction="true"/>
-
</resource-ref>
-
-
ORACLE
-
==================================================================
-
<resource-ref>
-
<res-ref-name>jdbc/job36</res-ref-name>
-
<res-type>javax.sql.DataSource</res-type>
-
<init-param driver-name="oracle.jdbc.driver.OracleDriver"/>
-
<init-param url="jdbc:oracle:thin:@192.168.3.84:1521:CRM"/>
-
<init-param user="job36"/>
-
<init-param password="job36"/>
-
<init-param max-connections="10"/>
-
<init-param enable-transaction="false"/>
-
</resource-ref>
-
注意:如果要訪問資料庫,請先確認RESIN安裝目錄下lib資料夾有相應資料庫的JDBC驅動,如mssqlserver.jar或oracle_jdbc.jar等,否則請先將驅動檔案拷貝到該目錄,不然無法訪問資料庫。
-
<res-ref-name>欄位為連線池名字,要與業務應用配置相同;
-
<init-param url>欄位為資料庫連線字串,藍色部分為資料庫伺服器IP:PORT、資料庫名或SID。<init-param user>資料庫使用者名稱。
-
<init-param password>密碼。
-
<init-param max-connections>欄位為連線池最大連線個數,這個資料對基於WEB的資料庫應用效能有一定影響,建議配置數為10~40(資料庫應用較多時配置應偏小,網頁應用較多時應偏大)。
-
-
3.2 服務埠配置
-
查詢<http port='8080'/>,藍色字串即為埠號,根據實際應用修改。
-
如果需要在一臺伺服器上啟動多個resin服務,請按相應規劃各應用埠號在每個resin安裝目錄的配置檔案中配置該項,不可重複。
-
-
3.3 更新類間隔時間
-
<class-update-interval>60s</class-update-interval>,藍色字元為配置項,單位為秒。
-
Class- update-interval欄位對RESIN服務效能影響較大,請根據需求更改,建議配置原則為:在開發環境,設為2或更小,這樣有利於 及時反映程式的修改對應用造成的改變;生產環境建議配置最小60,根據生產環境的特點,不可能有頻繁的類改動或是JAVA指令碼改變,或者根本不會有改動, 所以依據實際情況,設定為60~3600。
-
-
3.4 最大程式數
-
<thread-max>20</thread-max>,藍色字元為配置項。
-
Thread-max欄位為RESIN服務最大接收處理的程式個數,為了達到較好的效能輸出,建議該項配置值為3.1連線池中max-connections引數的1倍。即,如果連線池max-connections設為10,那麼就將thread-max設為20。
-
#resin.3.1版本安裝之後預設是1024,我改成了1024*20=20480.(zixun)
-
3.5 保持活動程式數
-
<thread-keepalive id='19'/>,藍色字元為配置項。
-
Thread-keepalive欄位為RESIN服務保持連結活動性的最大個數,它的值一定要小於3.4節中thread-max的值,否則RESIN無法啟動。該項無建議值。
-
-
3.6 請求超時時長
-
<request-timeout id='65s'/>,藍色字元為配置項,單位為秒。
-
Request-timeout欄位為RESIN服務返回請求連結超時的時間,預設即可。
-
-
3.7 接收連結緩衝大小
-
<accept-buffer-size id='500'/>,藍色字元為配置項。
-
Accept-buffer-size id欄位為RESIN服務在滿程式數下接收等待程式緩衝的個數,根據伺服器、網路情況而定,無建議值。
-
-
3.8 快取檔案過期時間
-
<cache-mapping url-pattern='/' expires='2s'/>,藍色字元為配置項。
-
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'/>,取消快取功能。
-
-
3.9 虛擬主機設定
-
-
3.9.1 預設文件設定
-
<welcome-file-list>index.xtp, index.jsp, index.html</welcome-file-list>.
-
Wecome- file-list欄位為預設文件的檔案列表。預設文件是在客戶端訪問Web伺服器,比如RESIN,時如果沒有制定要訪問的檔案(即輸入 URL為目錄名而不是具體的檔名,如:http://localhost:8080/),此時RESIN會根據該欄位的值來搜尋URL訪問目錄查詢匹配 檔案,如果找到檔案則返回給使用者而不需使用者輸入全部的URL,比如:http://localhost:8080/index.html。
-
該配置項一般用來設定預設主頁。
-
-
3.9.2 主機ID
-
<host id=''>.
-
Host id欄位在單主機環境、一臺伺服器需要啟動多個不同的RESIN服務時不用配置,請保持預設的空值。只有當與其他web伺服器,比如apache等,同時使用時,考慮改配置項。
-
-
3.9.3 日誌
-
<!--access-log id='logs/access.log'
-
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
-
rollover-period='1W'/-->
-
<error-log id='logs/error.log'/>,藍色字元為配置項。
-
? access-log id欄位為RESIN記錄執行時訪問日誌,該日誌在單獨伺服器情況下不推薦使用,就算在混合伺服器情況下(比如IIS、APACHE等)也不推薦,除非要分析個伺服器的訪問情況。如果不使用註釋該段即可(加入紅色部分程式碼)。
-
? error-log id欄位為RESIN錯誤日誌,建議使用預設值。日誌儲存在RESIN安裝目錄的logs資料夾裡。
-
-
3.9.4 虛擬目錄
-
在<host></host>欄位中加入<web-app id='/test’ app-dir='C:\webapp'/>,藍色字元為配置項。
-
Web-app id欄位為RESIN虛擬目錄名,app-dir欄位為本地路徑值。
-
例如:上面的配置實現了將http://localhost:8080/test/ 對映到了伺服器本地的c:\webapp目錄,該目錄內容應為web應用的程式碼或指令碼。
-
-
4 單伺服器多resin服務的配置
-
在某些應用中,會用到單伺服器多resin服務的配置,也就是在一臺伺服器上需要使用多個不同的resin服務,比如一個WEB網站的resin,一個語音IVR或簡訊SM的resin,此時的配置除了第三章所講的,還要注意以下幾點:
-
1. Host id欄位保留預設配置。
-
2. 各resin配置檔案的http port值不可相同,請按照系統規劃的埠號進行相應配置。
-
3. 各resin配置檔案的<srun host=’127.0.0.1’ port=’6802’>中的port值不可相同,該值可以任意配置,但要保持與其他埠沒有衝突,推薦遞增配置,比如6802、6803等,因為一般680x不會被使用。
-
4. 在配置完成後,觀察resin啟動介面(dos介面),確認以下兩項沒有出現:
-
? http can’t bind to *:8080 (提示中的8080可能是別的數字,該提示說明http埠號有衝突,請檢查http port欄位的值)
-
? srun can’t bind to port 127.0.0.1:6802 (提示中的6802可能是別的數字,該提示說明127.0.0.1的埠有衝突,請檢查srun欄位的port值)
-
5. 手工輸入地址測試是否正常。
-
配置完成。
-