[转帖]Resin 3.x 经验总结

来源:互联网 发布:无线淘宝收藏店铺按钮 编辑:程序博客网 时间:2024/04/26 17:16

1.[转帖]Resin 3.x 经验总结Copy to clipboardPosted by: ahaoxie
Posted on: 2008-09-16 14:09

这两天正好项目刚刚完成,所以就好好的研究了下Resin。我用的Resin版本是3.0.19,中间遇到一些常见的问题,但是网上大多数的资料都是1.x或2.x的,在3.x中是不能使用的,所以查到解决的办法不是件容易的事情,现在整理出来与大家分享:

1. 怎样关闭目录浏览方式?
查了些资料,大多数都是说可以 将directory-servlet设置为 “none” 来禁止目录浏览,但是这种方式只是真对于Resin2.x,在3.x中已经不使用directory-servlet了。后来看了下官方的文档资料,原来关闭目录浏览的方法很简单,只需要将resin.conf中

<servlet servlet-name="directory" 
servlet-class="com.caucho.servlets.DirectoryServlet"/>
注释掉就可以了

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. 出现OutOfMemoryException的解决方法
出现OOM异常大多数是因为分配给Resin的内存过小造成的,这个时候可以使用以下命令增大Resin的内存:

unix> bin/httpd.sh -Xmn100M -Xms500M -Xmx500M 
win> bin/httpd.exe -Xmn100M -Xms500M -Xmx500M 
install win service> bin/httpd.exe -Xmn100M -Xms500M -Xmx500M -install
这样就可以设置Resin使用的内存了

4. Resin和Apache组合
我感觉Resin和Apache组合是最简单的,设置比Tomcat简单方便的多。总结一下可以使用如下步骤:
1) 分别安装Apache和Resin
2) 在Apache中的httpd.conf中添加模块,代码如下:

LoadModule caucho_module "yourResinHome/win32/apache-2.0/mod_caucho.dll"
3) 如果是同一IP的多个站点,可以将
ResinConfigServer localhost 6802
放到VirtualHost代码中,下面是一个例子:

<virtualhost *:80> 
ServerName www.3721.com 
DocumentRoot "C:/website/www" 

ResinConfigServer localhost 6802 
</virtualhost>
当然如果想让虚拟站点正确运行的话,还需要在Resin的resin.conf文件中添加站点,具体可以参考Resin手册;如果不是同IP的虚拟站点,只要将 ResinConfigServer localhost 6802 放到任意一个地方就可以了

最后分别重启一下Resin和Apache就可以了,是不是很简单?

参考资料:
Resin 3.0 官方文档

原文出处: http://www.javatang.com/archives/2006/08/21/010658.html


2.Re:[转帖]Resin 3.x 经验总结 [Re: ahaoxie]Copy to clipboardPosted by: ahaoxie
Posted on: 2008-09-16 14:51

对resin容器,可以在启动时对jvm设置内存限度。在httpd.exe所在文件夹下创建一个startup.bat文件,内容如下:

@echo off
call "httpd.exe" "-Xms128M" "-Xmx256M"
:end

其中"-Xms128M"为最小内存,"-Xmx256M"为最大内存。

3.resin 3.1使用总结 [Re: ahaoxie]Copy to clipboardPosted by: ahaoxie
Posted on: 2008-09-16 16:25

  使用resin已经有四、五年了,但以前都是做一些小系统,resin的压力并不大,近段时间做一个大系统,日平均ip上10万,resin的压力非常的大,除了对程序做优化以外,resin 的优化也小不了。

  修改 conf/resin.conf 文章中的 JVM参数

<jvm-arg>-Xms512m</jvm-arg>
<jvm-arg>-Xss128k</jvm-arg>
<jvm-arg>-Xmn184m</jvm-arg>
<jvm-arg>-XX:ParallelGCThreads=20</jvm-arg>
<jvm-arg>-XX:+UseConcMarkSweepGC</jvm-arg>
<jvm-arg>-XX:+UseParNewGC</jvm-arg>
<jvm-arg>-Xdebug</jvm-arg>
<jvm-arg>-Xloggc:gc.log</jvm-arg>

  修改 最大thread-max为2500
<!-- Maximum number of threads. -->
<thread-max>2500</thread-max>
<!-- Configures the socket timeout -->
<socket-timeout>65s</socket-timeout>

<!-- Configures the keepalive -->
<keepalive-max>10240</keepalive-max>
<keepalive-timeout>30s</keepalive-timeout>

来源:http://www.strongd.net/blog/show/482

4.Resin 中 jvm 内存设置 [Re: ahaoxie]Copy to clipboardPosted by: ahaoxie
Posted on: 2008-09-17 00:40

通过一天来的学习,总结如下:

resin3.0 及前期版本内存设置, 如下:

unix> bin/httpd.sh -Xmn100M -Xms500M -Xmx500M
win> bin/httpd.exe -Xmn100M -Xms500M -Xmx500M
install win service> bin/httpd.exe -Xmn100M -Xms500M -Xmx500M -install -Xss1m.

resin3.1, 则只需修改resin.conf,如下配置即可
<jvm-arg>-Xmx2048m</jvm-arg>
<jvm-arg>-Xms1024m</jvm-arg>
<jvm-arg>-Xss1m</jvm-arg>
<jvm-arg>-Xdebug</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>

注:

在linux /unix 下或编辑 httpd.sh, 如下内容:

args='-J-server -Xms200m -Xmx1024m -Xloggc:./log/gc.log -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true'

说明:
(1)J-server -Xms200m -Xmx1024m 其中,-Xms200m 表示启动时,初时内存大小,-Xmx1024m
最大内存占用大小。
(2)-XX:MaxNewSize=256m -XX:MaxPermSize=256m 表示:内存的永久保存区域的大小
(3)-Djava.awt.headless=true 解决在linux/unix验证码图片不能显示的问题。