Resin 經驗總結

weixin_34304013發表於2010-03-07

1. 怎樣關閉目錄瀏覽方式?
查了些資料,大多數都是說可以 將directory-servlet設定為 “none” 來禁止目錄瀏覽,但是這種方式只是針對於Resin2.x,在3.x或4.x中已經不使用directory-servlet了。後來看了下官方的文件資料,原來關閉目錄瀏覽的方法很簡單,只需要將resin.conf中

  1. <servlet servlet-name="directory" 
  2.               servlet-class="com.caucho.servlets.DirectoryServlet"/>

修改為

  1. <servlet servlet-name="directory" 
  2.               servlet-class="com.caucho.servlets.DirectoryServlet"> 
  3.           <init enable="false"/> 
  4.       </servlet>

或者直接註釋掉這一段程式碼就可以了。

2. 設定Servlet為預設首頁
在web.xml中這樣設定

<servlet-mapping>
<servlet-name>MainPageServlet</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>

如果這樣的話在Tomcat中可以實現的,但是在Resin中會提示404。後來查了下資料,發現在Resin中預設的首頁檔案必須真實存在才可以的(”Point is that welcome file MUST exist on the server.”),所以除了上述的設定之外還需要在網站跟目錄下面建立一個同名的空檔案就可以了。

3. 安裝Resin為WinNT服務
使用以下命令安裝Resin為NT服務:

  1. httpd.exe -install      resin4 : resin -install

解除安裝服務使用下面的命令:

  1. httpd.exe -remove    resin4 : resin -install

這裡需要說明的是:如果Apache和Resin組合的話,刪除Resin的NT服務之前首先需要停止Apache,否則無法刪除。

4. 出現OutOfMemoryException的解決方法
出現OOM異常大多數是因為分配給Resin的記憶體過小造成的,這個時候可以使用以下命令增大Resin的記憶體:

  1. unix> bin/httpd.sh -Xmn100M -Xms500M -Xmx500M
  2. win> httpd.exe -Xmn100M -Xms500M -Xmx500M
  3. install win service> httpd.exe -Xmn100M -Xms500M -Xmx500M -install

這樣就可以設定Resin使用的記憶體了

5. Resin和Apache組合
我感覺Resin和Apache組合是最簡單的,設定比Tomcat簡單方便的多。總結一下可以使用如下步驟:
1) 分別安裝Apache和Resin
2) 在Apache中的httpd.conf中新增模組,程式碼如下:

  1. LoadModule caucho_module "yourResinHome/win32/apache-2.0/mod_caucho.dll"

3) 如果是同一IP的多個站點,可以將
ResinConfigServer localhost 6802
放到VirtualHost程式碼中,下面是一個例子:

  1. <virtualhost *:80>
  2. ServerName www.3721.com
  3. DocumentRoot "C:\website\www"
  4.  
  5. ResinConfigServer localhost 6802
  6. </virtualhost>

當然如果想讓虛擬站點正確執行的話,還需要在Resin的resin.conf檔案中新增站點,具體可以參考Resin手冊;如果不是同IP的虛擬站點,只要將 ResinConfigServer localhost 6802 放到任意一個地方就可以了

最後分別重啟一下Resin和Apache就可以了,是不是很簡單?