Windows下Resin的配置与部署(可用版)

来源:互联网 发布:ubuntu 17.10 qq 编辑:程序博客网 时间:2024/05/18 17:42

一 Resin简介

Resin是CAUCHO公司的产品,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发。Resin本身包含了一个支持HTTP/1.1的WEB服务器。虽然它可以显示动态内容,但是它显示静态内容的能力也非常强,速度直逼APACHE SERVER。许多站点都是使用该WEB服务器构建的。

Resin 普通版本和pro版本主要区别是 pro支持缓存和负载均衡。pro因为有强大的cache功能,独立作为web服务器处理静态性能都可以和apache有一比。但普通版本独立作为web服务器性能就要差一些。当然可以使用apache+resin的方案借助apache的缓存功能提高性能。 但负载均衡就是普通版不能比的了。


二 Resin 下载及启动

点击下载,个人建议下载zip版本,解压即可使用。解压到相关文件夹时,你必须一定要注意文件路径不能有空格符

启动步骤:

1、打开Resin安装文件夹,在根目录下找到stepup.exe,双击启动,第一行中填入你的resin安装路劲


2、找到根目录下http.exe,双击启动

3、输入http://localhost:8080,跳出resin默认文件页面,启动成功

 用http://hostip:8080即可访问到resin的默认页面 

       默认页面的 jsp 文件默认路径放在 /usr/local/resin/webapps/ROOT 下


问题: 

403 Forbidden IP Address  点击 resin-admin 出现这情况时

解决办法:进入resin.conf  ,<resin:set var="resin_admin_external" value="true"/>  将之前的false 改成true即可


三  配置后台管理

在进入resin默认的页面后,你会发现两个连接选项,前者是Resin的帮助文档,后者是后台管理选项界面。

如果你需要使用后台管理选项连接,会发现打开是失败的,你需要超做以下配置,完成Resin配置。

1、在你的Resin安装路径中,打开conf文件,找到resin.conf,打开进行编辑。

2、需修改,将false改为true,允许外部访问

[html] view plaincopy
  1. <prologue>  
  2.           <resin:set var="resin_admin_external" value="true"/>  
  3.           <resin:set var="resin_admin_insecure" value="true"/>  
  4. </prologue>  

四 创建后台管理用户

在后台管理界面中输入需要创建的用户名及密码,如下:


2、记录下生生的md5数据码,数据码位于:


3、修改resin.conf文件 ,需要注意的是,记得将第二行的true改为false

[html] view plaincopy
  1. <management path="${resin.root}/admin">  
  2.   <user name="admin" password="password" disable="false"/>  
  3.   <user name="你申请的用户名" password="产生的md5码"/>  
  4.   <resin:if test="${resin.professional}">  
  5.     <deploy-service/>  
  6.     <jmx-service/>  
  7.     <log-service/>  
  8.     <xa-log-service/>  
  9.   </resin:if>  
  10. </management>  

4、重启Resin,输入用户名密码即可进入后台管理界面

五  Resin发布应用

Resin发布应用其实和Tomcat几乎一模一样,有两种方式,一种是在Resin目录下发布,另一种是War发布

在Resin目录下发布:

在resin.conf中查找<host id="" root-directory=".">标记下的<web-app>标签,添加如下代码:

[html] view plaincopy
  1. <web-app id="/temp" root-directory="E:\myDocument\MyWork\WorkSpace\myEclipse\test\WebRoot"/>  
这里面的id=“/temp” 其实代表的就是服务器的逻辑路径,你需要在浏览器中输入\temp去访问你的应用,如:

[html] view plaincopy
  1. http://localhost:8080/temp/helloworld.jsp  
后面的root-directory指的是物理路径,服务器通过逻辑路径查找物理路径下的字节文件。

War方式发布:

和tomcat发布方式一样,不讲了,本人不是很喜欢这种方式的发布


六    一些问题、关键设置

1 老版本 整resin-admin 时,做完配置,有肯能httpd.sh stop 报错

 /usr/local/resin3/bin/httpd.sh stop
Resin/3.1.11 can't stop -server '' for watchdog at 127.0.0.1:6600.
com.caucho.config.ConfigException: watchdog stop forbidden - authentication failed 

这时,只能手工关闭resin 

 kill -s 9 pid

httpd.sh start  

OK,it`s works!


2 设置只许域名访问

<!-- configures the default host, matching any host name -->
    <host id="www.aaa.com " root-directory="."> 

将host id 后面改成域名即可

 

3 设置虚拟主机

 <host id="wap.aa.com.cn">
        <web-app id="/" document-directory="/test" >  将webapps下的test作为家目录,也可写  

                               全 路径

         </web-app>
      </host>

访问方式: http://wap.aa.com.cn/index.html



七  resin优化


1、优化JVM参数


修改resin.conf文件,在<server-default>节点下增加配置JVM参数的子节点<jvm-arg>。 -Xmx和-Xms的值需要根据服务器内存的大小调整,对于多数应用来说,-Xmx配置成1024M,完全能满足使用要求。通常将-Xms与-Xmx选项的值设置为相同,-Xmn的值为-Xmx的1/4。

    <server-default>

    <jvm-arg>-Xms1024m</jvm-arg>

    <jvm-arg>-Xmx1024m</jvm-arg>

    <jvm-arg>-Xmn256m</jvm-arg>

    <jvm-arg>-XX??ermSize=128m</jvm-arg>

    <jvm-arg>-XX:MaxPermSize=256m</jvm-arg>

    <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>

    </server-default>



2、调整图片Cache图片文件的时间


    <web-app-default>

      <cache-mapping url-pattern="*.gif" expires="6000s"/>

      <cache-mapping url-pattern="*.jpg" expires="6000s"/>

      <cache-mapping url-pattern="*.png" expires="6000s"/>

    </web-app-default>



3、调整线程池的最大线程数


    <server-default>

    <thread-max>1024</thread-max>

    </server-default>



4、日志输出


如果不配置stdout-log,那么resin会把System.out输出的信息,自动输出到${resinHome}/log/jvm-default.log文件中,且这个文件不会按天存储,随着时间推移,这个文件会越来越大,最后影响系统效率。

    <host>

    <stdout-log path="${resinHome}/log/stdout.log" timestamp="[%Y-%m-%d %H:%M:%S.%s]" rollover-period="1D"/>

    <stderr-log path="${resinHome}/log/stderr.log" timestamp="[%Y-%m-%d %H:%M:%S.%s]" rollover-period="1D"/>

    </host>



5、resin-server TIME_WAIT 过多的处理


thread-max指定了最大连接数,socket-timeout是socket超时时间

keepalive-max指定了长连接的数量,这是可以重复使用的连接,netstat -an时系统可以看到响应数量的ESTABLISHED状态

设定keepalive-max和把keepalive-timeout调小可以减少TIME_WAIT的数量。



在<server-default>节点下增加配置

      <thread-max>10000</thread-max>

      <socket-timeout>30s</socket-timeout>

      <keepalive-max>512</keepalive-max>

      <keepalive-timeout>60s</keepalive-timeout>



6、调整检查程序更新时间间隔的配置


Resin 会在一个指定的周期内,检查一下web-app目录下的classes、jsp、jar以及配置文件是否更新,并且根据检查的情况,确定是否重新装载这些文件。对于生产系统来说,不会经常更新文件,时间间隔应该加长,提高系统的效率。文本框中配置的时间间隔为20分钟。

    <dependency-check-interval>1200s</dependency-check-interval>

生成环境建议配置成以下,自检查会消耗一定系统性能,另一点是有些.class自检查会失败。
<dependency-check-interval>-1</dependency-check-interval>

 

 

7  兼容php

/usr/local/resin/webapps/ROOT下建立

cat p.php 
<?

phpinfo();
?>

http://192.168.0.247:8080/p.php


八  Resin可以配置3种error-page

404文件找不到页

[html] view plaincopy
  1. <web-app id='/app1'>  
  2.      <error-page error-code='404' location='/file_not_found.jsp'/>  
  3.     </web-app>  
Exception 违例页
[html] view plaincopy
  1. <web-app id='/foo'>  
  2.      <error-page exception-type='java.lang.NullPointerException' location='/nullpointer.jsp'/>  
  3.     </web-app>  
不能连接到srun Servlet引擎错误页该页设置和应用无关,属于服务器的设置。
[html] view plaincopy
  1. <http-server>  
  2.  <error-page exception-type='connection' location='/missing_file.html'/>  
  3. </http-server>  
参见下面的语句:
[html] view plaincopy
  1. <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相同。


九 禁用Resin的自动加载类更新

[html] view plaincopy
  1. <web-app id="/" root-directory="C:\PROJECTS\JAVA\DLOG4J\webapp" redeploy-mode="manual"/>  

此配置跟Tomcat的reloadable="false"的意图一致


十 Servlet的设置

[html] view plaincopy
  1. <servlet-mapping url-pattern='*.xtp' servlet-name='xtp'/>  
  2. <servlet-mapping url-pattern='*.jsp' servlet-name='jsp'/>  
  3. <servlet-mapping url-pattern='/servlet/*' servlet-name='invoker'/>  
一般就是指定那些需要通过srun的解析。比如在这里,把*.jsp改成*.jss,其他不变,那么只要在访问时遇到*.jss的文件就和原来遇到*.jsp一样处理。通过这个可以指定解析的引擎,如以下的配置: 
[html] view plaincopy
  1. <servlet-mapping url-pattern='*.xtp' servlet-name='com.caucho.jsp.XtpServlet'/>  
 在Servlet中,也可以指定servlet。如
[html] view plaincopy
  1. <servlet servlet-name='hello' servlet-class='test.HelloWorld'/>  
  2. <servlet-mapping url-pattern='/hello.html' servlet-name='hello'/>  
在servlet-mapping中有个重要的参数case-sensitive 如果在windows上,最好配置成false,忽略大小写,从而和windows的约定一致。

十一 Session的配置

[html] view plaincopy
  1. <session-config>  
  2. <session-max>4096</session-max>  
  3. <session-timeout>30</session-timeout>  
  4. <enable-cookies>true</enable-cookies>  
  5. <enable-url-rewriting>true</enable-url-rewriting>  
  6. <file-store>WEB-INF/sessions</file-store>  
  7. </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永久保存在数据库中。其实也就是会话变量的序列化后的保存和重新载入的物理实现。

参考:

  http://blog.csdn.net/dannor2010/article/details/8446584#

 http://hi.baidu.com/hanyanlovejoy/item/354edb8f182576ccb0715421

原创粉丝点击