resion 2.x配置
1. <http host='localhost' port='8888'/>
host參數指定的是伺服器,port指定的是http連接埠,預設是localhost和8080。
2. <srun host='localhost' port='6802'/> 這個是jsp和java Servlet的引擎配置。
3. 使用Resin開發Java Web項目時,需要建立自己的WebApp。
4. Resin中的應用可以有2種方式發布:
一是在Resin的目錄下發布;
二是打包成War發布。
5. 在resin.conf中尋找<web-app>標籤,該標籤表示一個web應用
標籤中,id屬性工作表示該應用的Web路徑。如<web-app id='/test' app-dir='e:/pic'>,表示該應用在Web上訪問的時候應該用http://hostname/test/來訪問。app-dir屬性工作表示該應用的實際路徑。
如<web-app id='/test' app-dir='e:/pic'>
例如:上面的配置實現了將http://localhost:8080/test/ 映射到了伺服器本地的c:/webapp目錄,該目錄內容應為web應用的代碼或指令碼。
Resin可以配置3種error-page:404錯
誤也就是檔案找不到錯誤頁;Exception違例頁;不能串連java引擎頁。他們分別可以這樣子設定。
404檔案找不到頁
<web-app id='/app1'>
<error-page error-code='404' location='/file_not_found.jsp'/>
</web-app>
Exception 違例頁
<web-app id='/foo'>
<error-page exception-type='java.lang.NullPointerException' location='/nullpointer.jsp'/>
</web-app>
不能串連到srun Servlet引擎錯誤頁
該頁設定和應用無關,屬於伺服器的設定。
<http-server>
<error-page exception-type='connection' location='/missing_file.html'/>
</http-server>
參見下面的語句:
<classpath id='WEB-INF/classes' source='WEB-INF/src' compile='true'/>
id參數的值表示classpath中編譯後的class的存放路徑;
source參數的值表示classpath中java原始碼的存放路徑;
compile中的值可能是true或者false,表示是否由Resin的srun自動編譯java原始碼。
Classpath的設定一般和javaBean或者Servlet的使用有關。id的值表示javaBean的編譯好的包存放的根,
source的值表示javaBean的java原始碼存放的根。Servlet相同。
6. Servlet的設定
<servlet-mapping url-pattern='*.xtp' servlet-name='xtp'/>
<servlet-mapping url-pattern='*.jsp' servlet-name='jsp'/>
<servlet-mapping url-pattern='/servlet/*' servlet-name='invoker'/>
一般就是指定那些需要通過srun的解析。比如在這裡,把*.jsp改成*.jss,其他不變,那麼只要在訪問時遇到
*.jss的檔案就和原來遇到*.jsp一樣處理。通過這個可以指定解析的引擎,如以下的配置:
<servlet-mapping url-pattern='*.xtp' servlet-name='com.caucho.jsp.XtpServlet'/>
在Servlet中,也可以指定servlet。如
<servlet servlet-name='hello' servlet-class='test.HelloWorld'/>
<servlet-mapping url-pattern='/hello.html' servlet-name='hello'/>
在servlet-mapping中有個重要的參數case-sensitive 如果在windows上,最好配置成false,忽略大小寫,從
而和windows的約定一致。
7. Session的配置
<session-config>
<session-max>4096</session-max>
<session-timeout>30</session-timeout>
<enable-cookies>true</enable-cookies>
<enable-url-rewriting>true</enable-url-rewriting>
<file-store>WEB-INF/sessions</file-store>
</session-config>
session-max :最大 session數量
session-timeout :session到期時間,以分鐘為單位。
是否允許cookie :指session是否採用cookies。如果採用cookies,瀏覽器必須支援session才能使用,發布
時建議改成false。enable-url-rewriting和enable-cookies一般配合使用。如果enable-cookies是false,
enable-url-rewriting應該設成true比較合適。
file-store :該配置指示伺服器是否把session作為檔案存放在伺服器上。如果把該項注釋掉,則在你的web
-app目錄下的WEB-Inf/sessions目錄不儲存序列化後的session對象。
Session還有jdbc-store配置,對應著把session通過jdbc永久儲存在資料庫中。
其實也就是會話變數的序列化後的儲存和重新載入的物理實現。
下面在詳細舉例說明一下
RESIN的設定檔只有一個,在安裝目錄的conf檔案夾內,檔案名稱為resin.conf,該檔案是一個xml結構的檔案,可用notepad或其他文字編輯器開啟編輯。
下面針對常用的配置項進行說明。
1 資料庫連接池配置
如果應用使用資料庫連接池,解壓縮後一般都直接帶有一個mysql的串連池例子,如要更改尋找<caucho.com>,在其後加入資料庫連接池的配置資訊如下:
SQL SERVER
==================================================================
<resource-ref>
<res-ref-name>jdbc/testxml</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.1.84:1433;create=true;DatabaseName=test"/>
<init-param user="sa"/>
<init-param password="sa"/>
<init-param max-connections="10"/>
<init-param enable-transaction="true"/>
</resource-ref>
ORACLE
==================================================================
<resource-ref>
<res-ref-name>jdbc/testxml</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.1.10:1521:test"/>
<init-param user="root"/>
<init-param password="root"/>
<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(資料庫應用較多時配置應偏小,網頁應用較多時應偏大)。
2 服務連接埠配置
尋找<http port='8080'/>,藍色字串即為連接埠號碼,根據實際應用修改。
如果需要在一台伺服器上啟動多個resin服務,請按相應規劃各應用連接埠號碼在每個resin安裝目錄的設定檔中配置該項,不可重複。
3 更新類間隔時間
<class-update-interval>60s</class-update-interval>,藍色字元為配置項,單位為秒。
Class-update-interval欄位對RESIN服務效能影響較大,請根據需求更改,建議配置原則為:在開發環境,設為2或更小,這樣有利於及時反映程式的修改對應用造成的改變;生產環境建議配置最小60,根據生產環境的特點,不可能有頻繁的類改動或是JAVA指令碼改變,或者根本不會有改動,所以依據實際情況,設定為60~3600。
4 最大進程數
<thread-max>20</thread-max>,藍色字元為配置項。
Thread-max欄位為RESIN服務最大接收處理的進程個數,為了達到較好的效能輸出,建議該項配置值為3.1串連池中max-connections參數的1倍。即,如果串連池max-connections設為10,那麼就將thread-max設為20。
5 保持活動進程數
<thread-keepalive id='19'/>,藍色字元為配置項。
Thread-keepalive欄位為RESIN服務保持連結活動性的最大個數,它的值一定要小於3.4節中thread-max的值,否則RESIN無法啟動。該項無建議值。
6 請求逾時時間長度
<request-timeout id='65s'/>,藍色字元為配置項,單位為秒。
Request-timeout欄位為RESIN服務返回請求連結逾時的時間,預設即可。
7 接收連結緩衝大小
<accept-buffer-size id='500'/>,藍色字元為配置項。
Accept-buffer-size id欄位為RESIN服務在滿進程數下接收等待進程緩衝的個數,根據伺服器、網路情況而定,無建議值。
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'/>,取消緩衝功能。
9 虛擬機器主機設定
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。
該配置項一般用來設定預設首頁。
9.2 主機ID
<host id=''>.
Host id欄位在單主機環境、一台伺服器需要啟動多個不同的RESIN服務時不用配置,請保持預設的空值。只有當與其他web伺服器,比如apache等,同時使用時,考慮修改此配置項。
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檔案夾裡。
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應用的代碼或指令碼。
10單伺服器多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. 手工輸入地址測試是否正常。
配置完成。