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,允许外部访问
- <prologue>
- <resin:set var="resin_admin_external" value="true"/>
- <resin:set var="resin_admin_insecure" value="true"/>
- </prologue>
四 创建后台管理用户
在后台管理界面中输入需要创建的用户名及密码,如下:
2、记录下生生的md5数据码,数据码位于:
3、修改resin.conf文件 ,需要注意的是,记得将第二行的true改为false
- <management path="${resin.root}/admin">
- <user name="admin" password="password" disable="false"/>
- <user name="你申请的用户名" password="产生的md5码"/>
- <resin:if test="${resin.professional}">
- <deploy-service/>
- <jmx-service/>
- <log-service/>
- <xa-log-service/>
- </resin:if>
- </management>
4、重启Resin,输入用户名密码即可进入后台管理界面
五 Resin发布应用
Resin发布应用其实和Tomcat几乎一模一样,有两种方式,一种是在Resin目录下发布,另一种是War发布
在Resin目录下发布:
在resin.conf中查找<host id="" root-directory=".">标记下的<web-app>标签,添加如下代码:
- <web-app id="/temp" root-directory="E:\myDocument\MyWork\WorkSpace\myEclipse\test\WebRoot"/>
- http://localhost:8080/temp/helloworld.jsp
War方式发布:
和tomcat发布方式一样,不讲了,本人不是很喜欢这种方式的发布
六 一些问题、关键设置
1 老版本 整resin-admin 时,做完配置,有肯能httpd.sh stop 报错
/usr/local/resin3/bin/httpd.sh stopResin/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文件找不到页
- <web-app id='/app1'>
- <error-page error-code='404' location='/file_not_found.jsp'/>
- </web-app>
- <web-app id='/foo'>
- <error-page exception-type='java.lang.NullPointerException' location='/nullpointer.jsp'/>
- </web-app>
- <http-server>
- <error-page exception-type='connection' location='/missing_file.html'/>
- </http-server>
- <classpath id='WEB-INF/classes' source='WEB-INF/src' compile='true'/>
source参数的值表示classpath中java源代码的存放路径;
compile中的值可能是true或者false,表示是否由Resin的srun自动编译java源代码。
Classpath的设置一般和javaBean或者Servlet的使用有关。id的值表示javaBean的编译好的包存放的根,source的值表示javaBean的java源代码存放的根。Servlet相同。
九 禁用Resin的自动加载类更新
- <web-app id="/" root-directory="C:\PROJECTS\JAVA\DLOG4J\webapp" redeploy-mode="manual"/>
此配置跟Tomcat的reloadable="false"的意图一致
十 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'/>
- <servlet-mapping url-pattern='*.xtp' servlet-name='com.caucho.jsp.XtpServlet'/>
- <servlet servlet-name='hello' servlet-class='test.HelloWorld'/>
- <servlet-mapping url-pattern='/hello.html' servlet-name='hello'/>
十一 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-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
- Windows下Resin的配置与部署(可用版)
- Windows下Resin的配置与部署
- Windows下Resin的配置与部署
- Windows下Resin的配置与部署
- Windows下Resin的配置与部署
- windows下apache与resin的整合
- Windows下安装Resin配置
- Windows下安装Resin及配置详解与发布应用
- Windows下安装Resin及配置详解与发布应用
- Windows下JSP环境的配置(Apache+Resin)
- Windows下Resin的安装及配置详解
- Windows下Resin的安装及配置详解
- Windows下Resin-pro-4.0.37的配置
- Windows下Resin的安装及配置详解
- Linux下resin服务器的安装与配置
- 在windows下配置resin安全
- resin Windows 安装部署
- resin的配置与使用
- !! Really Strange !!
- java学习心得1
- 绘制矩形(方法一)
- NSPredicate的用法
- AsyncSocket详解
- Windows下Resin的配置与部署(可用版)
- 简单安装NFS流程
- 最小圆覆盖
- 作业4
- 如何读取配置文件数据
- 页游项目开发中的一些经验和教训
- Unity3D NotificationCenter
- 绘制矩形(方法二、空心的)
- TI 6678第四天 关于执行 .out文件