一.简介
Resin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼APACHESERVER。许多站点都是使用该WEB服务器构建的。
Resin也可以和许多其他的WEB服务器一起工作,比如Apache server和IIS等。Resin支持Servlets 2.3标准和JSP 1.2标准。熟悉ASP和PHP的用户可以发现用Resin来进行JSP编程是件很容易的事情。
Resin支持负载平衡(Load balancing),可以增加WEB站点的可靠性。方法是增加服务器的数量。比如一台SERVER的错误率是1%的话,那么支持负载平衡的两个Resin服务器就可以使错误率降到0.01%。
Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。 如果您选用jsp平台作为internet商业站点的支持,那么速度、价格和稳定性都是要考虑到的,resin十分出色,表现更成熟,很具备商业软件的要求。而且,它是全免费的。从站点下载的就是完整版本。所以值得向您推荐! 相对于tomcat3.1,后者更象是一个正在研究的项目。resin可以支持sun的j2ee,而tomcat不能直接支持,而j2ee是基于java服务器端大系统的基础。
Resin3 之后已经不再是一个简单的jsp容器,并且支持ejb,jta等企业功能。resin4 (2010年后已经比较稳定)性能更是优秀。并且已经支持servlet 3.0标准. pro版本是收费版本,支持负载均衡和文件缓存。很多大型门户网站都采用pro版本作为应用服务器.
tomcat版本6.x也已经发展成为一个快速稳定的轻巧的jsp容器。和resin是不同的发展方向。tomcat6并不支持ejb,jta等高级功能,需要自己扩展,比较麻烦。但支持负载均衡。
CAUCHO公司,还为resin添加了php解析执行功能。能够运行php程序。但相对php的原生版本还是有一定差距。
版本区别
resin 普通版本和pro版本主要区别是 pro支持缓存和负载均衡。pro因为有强大的cache功能,独立作为web服务器处理静态页面性能都可以和apache有一比。但普通版本独立作为web服务器性能就要差一些。当然可以使用apache+resin的方案借助apache的缓存功能提高性能。 但负载均衡就是普通版不能比的了。
下载地址:http://caucho.com/products/resin/download
二.windows下安装配置
1.首先需要安装JDK ,然后将下载的文件解压到任意路径
2.运行setup.exe,进行配置
3.运行resin.exe,进行启动
出现以上界面,表示启动成功
4.点击第二个链接,进入管理界面
先创建一个用户名密码
5.接下来按照提示将用户名密码写入配置文件
看描述不再多说
6.重启resin,再次点击即可进入管理界面
7.发布应用
(1)与tomcat类似的,将工程打包放在resin-4.0.40\webapps目录下,都懂的,不再多说
(2)找到conf/resin.xml,在其中的<host id="" root-directory="."> 节点加入工程路径
<host id="" root-directory=".">
<!--
- webapps can be overridden/extended in the resin.xml
-->
<web-app id="/" root-directory="webapps/ROOT"/>
<web-app id="/demo" root-directory="D:/WorkSpace/demo/WebRoot"/>
</host>
即可发布项目
三.linux下的安装配置
1.上传安装包并解压到/usr/local/resin-4.0.40
2.运行命令:
[iyunv@HTML5 resin-4.0.40]# ./configure --prefix=/usr/local/resin-4.0.40 --with-java-home=$JAVA_HOME --enable-64bit
出现报错:
configure: error: in `/usr/local/resin-4.0.40':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
原因是centos linux,默认可以采用yum方式安装,则采用如下命令安装gcc编译器即可
[iyunv@HTML5 resin-4.0.40]# yum -y install gcc
再次运行配置成功!
3.启动resin
[iyunv@HTML5 resin-4.0.40]# ./bin/resin.sh start
Resin/4.0.40 launching watchdog at 127.0.0.1:6600
Resin/4.0.40 started -server 'app-0' with watchdog at 127.0.0.1:6600
4.发布项目
方式(1)(2)同windows下,但是这两种方式均不能单独启动一个应用,当有多个应用时重启resin会影响每一个项目,下面介绍一种能单独启动一个应用的方法:
找到resin.xml,在最下面添加以下两个节点
<cluster id="test-hessian-server">
<!-- sets the content root for the cluster, relative to resin.root -->
<root-directory>.</root-directory>
<access-log path="/usr/local/resin-4.0.40/log/test_hessian_server_access.log
"
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %
T'
rollover-period="1W" />
<server-default>
<http address="*" port="9080" />
<thread-max>10240</thread-max>
<thread-idle-timeout>60s</thread-idle-timeout>
<request-timeout>10s</request-timeout>
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.port=51518</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg>
<jvm-arg>-Xms512m</jvm-arg>
<jvm-arg>-Xmx512m</jvm-arg>
<jvm-arg>-Xmn256m</jvm-arg>
<jvm-arg>-Xss1024k</jvm-arg>
<jvm-arg>-XX:PermSize=256m</jvm-arg>
<jvm-arg>-XX:MaxPermSize=512m</jvm-arg>
<jvm-arg>-XX:SurvivorRatio=8</jvm-arg>
<jvm-arg>-XX:MaxTenuringThreshold=8</jvm-arg>
<jvm-arg>-XX:GCTimeRatio=19</jvm-arg>
<socket-timeout>10s</socket-timeout>
<keepalive-max>128</keepalive-max>
<keepalive-timeout>15s</keepalive-timeout>
<keepalive-connection-time-max>60s</keepalive-connection-time-max>
<jvm-arg>-XX:+DisableExplicitGC</jvm-arg>
<jvm-arg>-XX:+UseParNewGC</jvm-arg>
<jvm-arg>-XX:+UseConcMarkSweepGC</jvm-arg>
<jvm-arg>-XX:+CMSPermGenSweepingEnabled</jvm-arg>
<jvm-arg>-XX:+UseCMSCompactAtFullCollection</jvm-arg>
<jvm-arg>-XX:CMSFullGCsBeforeCompaction=0</jvm-arg>
<jvm-arg>-XX:+CMSClassUnloadingEnabled</jvm-arg>
<jvm-arg>-XX:-CMSParallelRemarkEnabled</jvm-arg>
<jvm-arg>-XX:CMSInitiatingOccupancyFraction=70</jvm-arg>
<jvm-arg>-XX:SoftRefLRUPolicyMSPerMB=0</jvm-arg>
<jvm-arg>-XX:+PrintClassHistogram</jvm-arg>
<jvm-arg>-XX:+PrintGCDetails</jvm-arg>
<jvm-arg>-XX:+PrintGCTimeStamps</jvm-arg>
<jvm-arg>-XX:+PrintGCApplicationConcurrentTime</jvm-arg>
<jvm-arg>-XX:+PrintGCApplicationStoppedTime</jvm-arg>
<jvm-arg>-XX:+HeapDumpOnOutOfMemoryError</jvm-arg>
<jvm-arg>-Xloggc:gc.log</jvm-arg>
<jvm-arg>-Xdebug</jvm-arg>
<jvm-arg>-Xrunjdwp:transport=dt_socket,address=9988,server=y,suspend=n</
jvm-arg>
</server-default>
<server id="hessian-server" address="127.0.0.1" port="6801">
</server>
<host id="" root-directory="/usr">
<web-app id="/test-hessian-server" root-directory="local/web/test-hessia
n-server">
<character-encoding>utf-8</character-encoding>
<jsp>
<session>false</session>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp>
</web-app>
</host>
</cluster>
<cluster id="demo">
<!-- sets the content root for the cluster, relative to resin.root -->
<root-directory>.</root-directory>
<access-log path="/usr/local/resin-4.0.40/log/demo_access.log"
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %
T'
rollover-period="1W" />
<server-default>
<http address="*" port="8080" />
<thread-max>10240</thread-max>
<thread-idle-timeout>60s</thread-idle-timeout>
<request-timeout>10s</request-timeout>
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.port=51519</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg>
<jvm-arg>-Xms512m</jvm-arg>
<jvm-arg>-Xmx512m</jvm-arg>
<jvm-arg>-Xmn256m</jvm-arg>
<jvm-arg>-Xss1024k</jvm-arg>
<jvm-arg>-XX:PermSize=256m</jvm-arg>
<jvm-arg>-XX:MaxPermSize=512m</jvm-arg>
<jvm-arg>-XX:SurvivorRatio=8</jvm-arg>
<jvm-arg>-XX:MaxTenuringThreshold=8</jvm-arg>
<jvm-arg>-XX:GCTimeRatio=19</jvm-arg>
<socket-timeout>10s</socket-timeout>
<keepalive-max>128</keepalive-max>
<keepalive-timeout>15s</keepalive-timeout>
<keepalive-connection-time-max>60s</keepalive-connection-time-max>
<jvm-arg>-XX:+DisableExplicitGC</jvm-arg>
<jvm-arg>-XX:+UseParNewGC</jvm-arg>
<jvm-arg>-XX:+UseConcMarkSweepGC</jvm-arg>
<jvm-arg>-XX:+CMSPermGenSweepingEnabled</jvm-arg>
<jvm-arg>-XX:+UseCMSCompactAtFullCollection</jvm-arg>
<jvm-arg>-XX:CMSFullGCsBeforeCompaction=0</jvm-arg>
<jvm-arg>-XX:+CMSClassUnloadingEnabled</jvm-arg>
<jvm-arg>-XX:-CMSParallelRemarkEnabled</jvm-arg>
<jvm-arg>-XX:CMSInitiatingOccupancyFraction=70</jvm-arg>
<jvm-arg>-XX:SoftRefLRUPolicyMSPerMB=0</jvm-arg>
<jvm-arg>-XX:+PrintClassHistogram</jvm-arg>
<jvm-arg>-XX:+PrintGCDetails</jvm-arg>
<jvm-arg>-XX:+PrintGCTimeStamps</jvm-arg>
<jvm-arg>-XX:+PrintGCApplicationConcurrentTime</jvm-arg>
<jvm-arg>-XX:+PrintGCApplicationStoppedTime</jvm-arg>
<jvm-arg>-XX:+HeapDumpOnOutOfMemoryError</jvm-arg>
<jvm-arg>-Xloggc:gc.log</jvm-arg>
<jvm-arg>-Xdebug</jvm-arg>
<jvm-arg>-Xrunjdwp:transport=dt_socket,address=9989,server=y,suspend=n</
jvm-arg>
</server-default>
<server id="demo" address="127.0.0.1" port="6900">
</server>
<host id="" root-directory="/usr">
<web-app id="/demo" root-directory="local/web/demo">
<character-encoding>utf-8</character-encoding>
</web-app>
</host>
</cluster>
然后重启resin
/usr/local/resin-4.0.40/bin/resin.sh restart -server demo
/usr/local/resin-4.0.40/bin/resin.sh restart -server hessian-server
出现报错:
错误: 代理抛出异常错误: java.net.MalformedURLException: Local host name unknown: java.net.U
nknownHostException: HTML5: HTML5: 未知的名称或服务
修改hosts文件,错误解决:
[iyunv@HTML5 pages]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 HTML5
再次重启又报错:
[14-06-23 19:26:06.412] {resin-port-9080-51} Unable to find native library 'resin_os' for com.caucho.loader.ClassEntry. Resin expects to find this library in:
(Unix) /usr/local/resin-4.0.40/libexec64/libresin_os.so
On Unix, run ./configure --prefix=`pwd`; make; make install.
The JVM exception was: java.lang.UnsatisfiedLinkError: no resin_os in java.library.path
根据提示执行命令:./configure --prefix=`pwd`; make; make install
提示 make: command not found
执行命令:yum -y install gcc automake autoconf libtool make 安装该命令
再次执行./configure --prefix=`pwd`; make; make install
成功!
重启resin,两个应用都成功运行!
四.与Eclipse的集成
1. 3.7版本以上的Eclipse已经有resin server插件,window>>show views >>servers 进入servers面板后,鼠标右击new>server ,在New Server 对话框,找不到resin选项,然后就点击'Download additional server adapters' 选项,几秒钟后会弹出‘Install New Extension’对话框,有很多要下载的选项,选择'Resin (Java EE Web Profile) ,然后一路配置下去
2.安装完插件,重启Eclipse,new server 选择resin,一路配置下去
3.将工程添加进去,启动server即可
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com