Resin配置步骤及中文配置文件说明
- 格式:docx
- 大小:17.21 KB
- 文档页数:6
Nginx安装配置、Resin安装配置说明文档1. windows ................................................................................................................................... - 1 -(1) Nginx安装配置............................................................................................................. - 1 -1) Nginx安装 .............................................................................................................. - 1 -2) Nginx配置 .............................................................................................................. - 1 -a)对c:\nginx\conf\nginx.conf文件进行配置: ................................................. - 1 -b)常用的Nginx 参数 ........................................................................................ - 3 -c)静态文件处理................................................................................................... - 4 -d)动态页面请求处理 .......................................................................................... - 4 -e)下面为nginx.conf配置实例:........................................................................ - 5 -f)Nginx 启动,停止等命令 ............................................................................... - 8 -(2) Resin安装配置.............................................................................................................. - 9 -1) Resin安装 ............................................................................................................... - 9 -2) Resin配置 ............................................................................................................... - 9 -a)设置环境变量................................................................................................... - 9 -b)运行Resin ...................................................................................................... - 10 -c)对E:\sssssssss \resin\conf\resin.conf 文件进行配置 ................................... - 11 -d)80端口修改: ............................................................................................... - 16 -e)默认发布目录修改:..................................................................................... - 16 -f)多虚拟主机: ................................................................................................. - 16 -g)多端口设置: ................................................................................................ - 17 -(3) Resin与Eclipse整合 .................................................................................................. - 17 - 2. Linux ...................................................................................................................................... - 18 -(1) 环境变量设置............................................................................................................. - 18 -(2) Nginx安装与配置....................................................................................................... - 18 -1) Nginx安装 ............................................................................................................ - 18 -2) Nginx配置 ............................................................................................................ - 19 -(3) Resin安装与配置........................................................................................................ - 21 -1) Resin安装 ............................................................................................................. - 21 -2) Resin配置 ............................................................................................................. - 21 -(4) Linux下Nginx+Resin负载均衡,session问题解决实例........................................ - 21 -1) 测试环境: .......................................................................................................... - 21 -2) 安装步骤: .......................................................................................................... - 22 -a)在server1 上安装配置nginx + nginx_upstream_jvm_route ....................... - 22 -b)分别在两台机器上安装resin ..................................................................... - 22 -c)配置两台机器的resin ................................................................................. - 23 -d)整合ngxin resin.......................................................................................... - 24 -e)测试,打开浏览器,输入http://192.168.6.121/index.jsp ........................... - 26 -3) conf实例文件 ....................................................................................................... - 26 -a)nginx.conf ....................................................................................................... - 26 -b)resin.conf ........................................................................................................ - 28 -1. windows(1) Nginx安装配置1) Nginx安装文件nginx-0.8.27.zip解压缩,并修改文件夹名称为:nginx 。
1.点击菜单栏Run菜单,选择run Configurations2.右击Generic Server选择new添加Resin服务器3.选择Resin4.0,点击应用并运行4.再点击菜单栏Run菜单,选择Debug Configurations5.右击Java Application选择new6.Project处填写客户端,如:tb_client,Main class处填写程序的入口,如:mon.client.DeskTopSingletonApplication,再单击Arguments,在Program arguments里面填写参数,如:<argument>TENANT_NAME=frank_sbkj</argument><argument>CLIENT_APP_CLASS_NAME=com.sbt.taobao.bo.T aobaoFshJXCSim Client</argument><argument>session_id=6201027b4fd29100b7345cb4086657d13acegc594c80c 60397659183</argument><argument>IS_TP_USER=YES</argument><argument>TENANT_CODE=12281284_397659183</argument><argument>db_name=alidrp1</argument><argument>URL_PARAM=app_key=12281284&session=6201027b4fd29100b7 345cb4086657d13acegc594c80c60397659183&nick=frank_sbkj</argument> <argument>UI_DEBUG_KEY=true</argument><argument>LOGIN_USER=admin</argument><argument>JNLP_URL=/jnlp/FshT aobaoSimMainServlet/ 12281284_397659183_FshT aobaoSimMainServlet.jnlp</argument> <argument>VERIFICATION_HOST=</argument><argument>userId=397659183</argument><argument>AUTO_LOGIN=true</argument><argument>VERIFICATION_ID=sbt2639507820</argument><argument>tenant_host=</argument>添加<argument>deploy=n</argument>7.点击应用并运行,配置完毕。
Linux下Resin+JSP+MySQL安装和配置准备软件:1. J2SDK(1.5.0): jdk-1_5_0-linux-i586-rpm.bin2. Apache(2.0.53): httpd-2.0.53.tar.gz3. Resin(3.0.13): resin-3.0.13.tar.gz4. MySQL(4.1.12): Server: MySQL-server-4.1.12-1.i386.rpmClient: MySQL-client-4.1.12-1.i386.rpm5. MySQL-J BDC Connector: mysql-connector-java-3.1.10.tar.gz将上述软件全部放到一个目录下,假设在/down中。
安装过程:一.安装J2SDK1.解压文件,解压后一个R PM安装包,安装中根据提示回答yes即可将文件安装到/usr/java/jdk1.5.0目录中# chmod u+x ./jdk-1_5_0-linux-i586-rpm.bin# ./jdk-1_5_0-linux-i586-rpm.bin# rpm -ivh jdk-1_5_0-linux-i586.rpm安装程序会将J2SDK安装到以下目录中:# ls /usr/javajdk1.5.02.配置环境变量(1)配置用户环境变量假设用户名为jun,编辑该用户的.bashrc文件:# vi /home/jun/.bashrc在其中加入:export J AV A_HOME=/usr/java/jdk1.5.0export CL ASSP ATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOMR/bin (2)配置所有用户的环境变量# vi /etc/profile加入:export JAVA_HOME=/usr/java/jdk1.5.0export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOMR/bin 注意,这些应该加在export PATH USER...之前3.检查是否正确:先退出登录# logout然后再登录,输入以下命令,如果提示参数,一般认为没问题了.# javac二.安装Apache21.安装# tar zxvf httpd-2.0.53.tar.gz# cd httpd-2.0.53# ./configure --prefix=/usr/local/apache2# make# make install2.测试启动服务# /usr/local/apache2/bin/httpd -k start在浏览器的地址栏输入http://localhost即可看到运行结果.表示安装和运行成功.3.配置目录假设你的WWW服务的文件目录在/var/www下,则修改配置文件# vi /usr/local/apache2/conf/httpd.conf将默认的文件路径DocumentRoot "/usr/local/apache2/htdocs"改成你的服务目录DocumentRoot "/var/www"然后重启服务:# /usr/local/apache2/bin/httpd -k restart再刷新http://localhost就应该看到的是你自己的首页.4.配置系统,使用httpd可以自启动.拷贝/usr/local/apache2/apachectl到/etc/rc.d/init.d/httpd # cp /usr/local/apache2/apachectl /etc/rc.d/init.d/httpd # cd /etc/rc.d/rc3.d# ln -s /etc/rc.d/init.d/httpd S80httpd这样,系统在启动时可自动加载apache.三.安装MySQL1.分别安装服务器端# rpm -ivh MySQL-server-4.1.12-1.i386.rpm服务器端安装完后会自动启动MySQL服务# rpm -ivh MySQL-client-4.1.12-1.i386.rpm2.测试# mysqlshow如果出mysql和test两个数据库,即说明已正确安装四.安装Resin1.解压和安装# cd /usr/local# tar zxvf /down/resin-3.0.13.tar.gz# cd resin-3.0.13# ./configure --with-java-home=/usr/java/jdk1.5.0--with-apxs=/usr/local/apache2/bin/apxs# make# make install2.测试启动resin,并测试结果# /usr/local/resin-3.0.13/bin/httpd.sh -verbose如果看到:http listening to *:8080ServletServer[] startingHost[] startingApplication[http://XX.XX.XX.XX:8080/resin-doc] starting Application[http://XX.XX.XX.XX:8080] starting....即表明运行成功,在浏览器地址栏输入:http://localhost:8080应该可以看到Resin的默认首页.3.整合Apache和Resin目的是让Resin的主目录和apache的主目录指向同一个目录,并且配置Resin可以在解析80端口处的JSP网页.(1)检查文件# ls /usr/local/apache2/modules/mod_caucho.so如果有,继续(2)编辑httpd.conf# vi /usr/local/apache2/conf/httpd.conf找到ResinConfigServer localhost 6802确信其内容为:LoadModule caucho_module /usr/local/apache2/modules/mod_caucho.soResinConfigServer 192.168.1.109 6802 //即改localhost为你的计算机的实际IPCauchoStatus yes(3)编辑resin.conf# vi /usr/local/resin-3.0.13/conf/resin.conf将和的host改成实际IP:...改的路径为你的网页主路径/var/www:(4)重启apache和resin# /usr/local/apache2/bin/httpd -k restart# /usr/local/resin-3.0.13/bin/httpd.sh start记者百度()如果出现端口被占,无法绑定的情况,则重启系统,# reboot (5)测试将test.jsp文件:2+2=放到目录/var/www中访问:http://localhost/test.jsp如能正常显示2+2=4,则说明成功.4.安装mysql-jdbc驱动程序# cd /usr/local# tar zxvf /down/mysql-connector-java-3.1.10.tar.gz5.配置Resin自启动编辑/etc/rc.d/rc.local# vi /etc/rc.d/rc.local加入:export JAVA_HOME=/usr/java/jdk1.5.0export JDBC=/usr/local/mysql-connector-java-3.1.10 ##配置JDBC驱动程序路径export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/binexportCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JDBC/mysql-connector-java-3.1 .10-bin.jar:$CLASSPATHecho "Starting Resin 3.0.13..."/usr/local/resin-3.0.13/bin/httpd.sh start ##启动resinsleep 15 ##因为启动时做的工作很多,所以,延时15秒五.测试mysql1.将以下文件testmysql.jsp放到/var/www中;2.测试:http://localhost/testmysql.jsp如果看到:驱动程序加载成功!已经建立到MySQL数据库连接.即说明成功。
Resin Session AnalysisWritten by Wooce 1. Resin的Reliability和Load balance机制Resin在Web Server中的内嵌模块处理请求的顺序:1)Web Server接收到请求2)内嵌模块(mod_caucho, mod_isapi等)检查是否由Resin处理的请求3)内嵌模块选中一个后台JVM,也就是一个<srun>:a.如果是已有的session, 则选中拥有该session的那一个JVMb.如果是新的请求,则采用轮循策略交由下一个<srun>处理4)内嵌模块通过TCP Socket把请求发给选中的后台JVM5)内嵌模块再通过同一TCP Socket连接接收后台JVM的响应结果.所有的有关内嵌模块和后台JVM均在resin.conf这一配置文件中配置, 使维护变得容易.因为内嵌模块需要决定选用哪一个JVM,所以负载平衡由内嵌模块控制.从JVM的角度看,来自内嵌模块的请求和HTTP请求是同样的,除了编码稍有不同.例如, Resin1.2或以上,同一个JVM可以在同一个端口8080同时作为srun和httpd服务器服务.轮循策略虽然简单, 但它实际上和其他复杂的负载平衡测率一样有效, 并且正由于简单, 它更加健壮和快速.1.1单机最廉价的备份策略. 它在单台机器上运行一个Web Server和两个JVM. 其中一个是主服务JVM, 另一个是后备JVM, 如果主JVM失效, 将启用后备JVM维持Servlet Engine仍然可用. 在resin.conf中的相应配置例子:启动时应该分别单独地启动这两个sun进程. 例如unix下:在NT下:1.2单Web Server, 多JVM当有多台计算机的时候, 可以把负载分担到一台Web Server和多个JVM上, 这比用路由器实现负载平衡较为廉价. 并且采用Resin自己的负载平衡机制,可以保证使同一个session 停留在同一台计算机上.配置举例:各台计算机可以共享使用同一个resin.conf, 但也可以为Web Server和每个JVM分别使用不同的resin.conf.为了确保session停留在固定的机器上, Resin对cookie的编码中加上了主机号标识. 1.3多Web Server和JVM对于大型的服务网站, 一般使用多台计算机, 并且每台计算机都分别运行一个Web Server和一个JVM, 由Router负责把负载分担到不同的机器上.对于这种方法, 由于Router随机地把负载分配到某台机器上, 所以发给某台host的请求的Session不一定是这台Host拥有的.因此需要把任何持久的session维护在一台中央服务器如JDBC数据库上或者采用其他方法使能够由session的id找到拥有该session的机器.即使对于这种Router负载平衡方法, 仍然可以用Resin自己的load balance策略提高可靠性. 对于每一台host上的web server, 都应该首先使用同一台host上运行的JVM进行处理, 但同时可以另一台Host上运行的JVM作为后备.上面例子中host1, host2,host3上的JVM只有当localhost上的JVM失败时才会被启用.另一个例子:1.4多Web Server, 单JVM多个Web Server可以同时使用同一个JVM处理请求. 例如, 我们有一个高速的一般的Web Server和一个采用SSL加密的Web Server的时候, 这两个Web Server可以由同一个JVM 处理请求(虽然如果有一个后备JVM的话会更好), 这简化了引入SSL的开发.2. Resin内部实现distributed sessions的机制2.1 session的backing store的概念和内存中的session的同步更新在Resin设置成load balance over multiple machine的情况, 各台运行web server和JVM 的机器组成一个load balancing pool.为实现load balance over multiple machine下的distributedsession, 必须考虑一个session在被生成后, 在load balancing pool中其他不拥有该session的机器如何访问它, 以及如何同步它们. 在Resin中是通过把session存储到backing store中来解决的, 一个JVM创建了一个新的session后,就把它存储到backing store去, 然后只要保证以下条件:(1)每个内存中有此session的JVM如果更新了此session, 就把更新后的session写到backing store中去, 并且backing store里做到在写某一session的时候不会同时接受读取同一session的请求.(2)每个JVM在读取session的时候,如果它的内存cache中还没有该session, 一定到backing store去读取.(3)某个JVM: Server A在读取session的时候,如果它的内存cache中已有该session, 这时只要满足以下的其中一种情况即可:a. 在(1)中写session到backing store里时保证同时更新了Server A的内存cache中的sessionb. 到backing store中再load出session并以此更新内存cache中的session显然, 满足了以上3个条件, 不同的机器存取同一session的时候就有很好的同步性, 并且亦有较好的性能.在Resin中, backing store可采用3种实现方式: (参看src/com/caucho/server/http/下的SessionStore.java,SessionFileStore.java,SessionJdbcStore.java和SessionRingStore.java)(1)SessionFileStore(这一方式在我所看的Resin2.0.2的代码里实际上还未实现)session的backing store在生成它的Host的文件系统(Resin似乎考虑在将来实现一个在不同的运行JVM的机器之间共享文件的网络文件系统VFS)上.(2)SessionJdbcStore在一台中央服务器上的database作为backing store, 每台Host上生成的session都通过JDBC存储到中央服务器的database中去.(3)SessionRingStore在这种方式中, load balancing pool中所有的运行JVM的机器按host id从小到大(host id 的首字母从’a’到’z’的顺序)组成一个JVM的index号的环, 当环中的某一台Host生成了一个session(session里记录了生成它的JVM的index号)的时候, 就以生成该session的JVM的index号开始, 在环上顺序查找, 只要某一个index的JVM是可用的, 就把session存储到运行该JVM的机器的本地文件系统中, 这样在两台机器上都分别存储了这个session的副本的时候就停止. 明显可看出, 一般情况下(所有JVM都没有crash down)每个session都有两个副本分别存储在生成它的那台机器和环中的下一台机器的文件系统中.Resin采用上述3种方式中的哪种方式来实现distributed session决定于:IF resin.conf中session-config/file-store和其下的directory的tag不为空THEN 采用SessionFileStore;ELSE IF resin.conf中session-config/tcp-store为true THEN 采用SessionRingStore;ELSE IF resin.conf中session-config/jdbc-store不为空THEN 采用SessionJdbcStore;在Resin的实现中,(1)SessionRingStore方式一定能满足上面所说的3个条件, 同步性最好.而对于(2)SessionFileStore和SessionJdbcStore两种方式a. 当resin.conf中session-config/always-load-session为false的时候, 如果一个JVM读入了session在内存cache中, 以后除非timeout再从backing store中reload的情况, 以后有请求都一定从内存cache中读该session, 不能看到其他JVM在此期间对该session 的更新, 这时同步性最差, 但由于不需从backing store中读取, 响应速度最快;b. 当resin.conf中session-config/always-load-session为true的时候, 这时任何请求都会到backing store中读取, 同步性好, 但由于session的内存cache实际上不起作用, 对请求的响应速度最慢.2.2 相关类分析2.2.1 QSession类实现HttpSession接口, 在Resin系统中某个JVM内存中的session就是一个QSession对象, JVM内存cache中的QSession对象需要和backing store中的session保持同步更新.2.2.2 VirtualHost类在一个JVM上处理的所有Servlet application的集合.2.2.3 SrunConnection类维护本JVM到另一个JVM的一个用以交换session的socket连接.2.2.4ServletServer类实现Server接口其他:hostList: ArrayList类型(VirtualHost对象)addHost(String id, RegistryNode node, String appDir)函数:根据(id, node, appDir)新建一个VirtualHost对象并存入HashTable类型成员hosts中.init()函数:初始化invocationCache(LRUCache类型)等内存中的Cache;调用initHosts()函数初始化hosts 等;2.2.5 SessionStore类负责session的访问(读取/存储)操作的基类, SessionFileStore,SessionJdbcStore, SessionRingStore等都是它的子类.2.2.5SessionBacking类封装session存储在file system上的backing path上时的访问操作的接口.2.2.6 SessionManager类管理一个servlet application的所有session重要数据成员和函数:2.2.6SessionRingStore类当以Ring方式的backing store存储distributed sessions时SessionStore类的实现.SessionRingStore.java的void store(QSession session)函数:int sessionIndex = session.getSrunIndex(); //生成该QSession对象的JVM的index号int srunIndex = manager.getSrunIndex(); //执行本函数的JVM的index号int srunCount = manager.getSrunCount(); //Load balancing pool中所有JVM的数目if (sessionIndex < 0)sessionIndex = srunIndex;int index = sessionIndex; //在环中从生成该QSession对象的JVM的index号开始ReadWritePair rws = null;boolean hasSelf = false;int saveCount = 2; //分别存储2个副本到2个JVM的file system中for (int i = srunCount - 1; i >= 0 && saveCount > 0; i--) {//在环上查找一周,并且成功存//储2个副本时就停止if (index == srunIndex) { //环上的当前index号是本机的index号, 令hasSelf为truehasSelf = true; //使在后面的代码段中将会调用StoreSelf()函数存储Session副saveCount--; //本到本机的file system中}else {rws = server.getRecycleConnection(index); //环上当前检查的index号是其他机器,if (rws != null) { //取出可用的socket连接把QSession对象传给index号host让它try { //存储或更新到它的本地file sytem(由RunnerRequest.java处理) saveSession(tempStream, backing.getId(), index, rws);saveCount--;} catch (IOException e) {rws.getReadStream().close();rws.getWriteStream().close();rws = null;}}if (rws == null) {rws = server.getSessionConnection(index);if (rws != null) {try {saveSession(tempStream, backing.getId(), index, rws);saveCount--;} catch (IOException e) {rws.getReadStream().close();rws.getWriteStream().close();rws = null;}}}}index = (index + 1) % srunCount; //取环中的下一个JVM}if (hasSelf) {ReadStream is = tempStream.openRead(true);storeSelf(session, is); //存储session到本地file systemis.close();storeSelf()函数如下:private void storeSelf(QSession session, ReadStream is){SessionBacking backing = session.getBacking();synchronized (backing) { //通过异步synchronized避免多个请求时的写冲突try {Path sessionPath = backing.getPath(); //获得session在本地file system上的存储路径WriteStream os = sessionPath.openWrite();os.writeStream(is);os.close();} catch (IOException e) {if (dbg.canWrite())dbg.log(e);}}boolean load(QSession session)throws Exception{SessionBacking backing = session.getBacking();if (backing == null)return false;int sessionIndex = session.getSrunIndex();int srunIndex = manager.getSrunIndex();int srunCount = manager.getSrunCount();if (sessionIndex < 0)sessionIndex = srunIndex;int updateCount = session.getUpdateCount();/* servers A and B don't need auto-reloading, but server C does.这里server A和server B即指存有session副本的那两个server,当本JVM是server A或server B之一的时候, 显然本JVM的内存cache里的session 肯定是整个load balancing pool中最新的, 所以从这里退出来后回到SessionManager类//的QSession getSession(String key, long now)函数往下执行到else if (sessionStore != null && now > 0 &&(reloadEachRequest || session.needsLoad()))load(session, now);这里session.needsLoad()函数必须返回false, 反之不是server A和server B的情况session.needsLoad()函数就必须返回true以便调用load(session,now)从server A和server B 上获取最新更新的session, 所以在这里的符合条件判断时的代码段内有session.setNeedsLoad(true);语句*/if (srunIndex != sessionIndex &&(sessionIndex + 1) % srunCount != srunIndex) {updateCount = -1;session.setUpdateCount(-1);session.setNeedsLoad(true);}ReadWritePair rws = null;int index = sessionIndex;int loadCount = 2;// Find a live serverfor (int i = srunCount - 1; i >= 0 && loadCount > 0; i--) {try {if (srunIndex != index) {rws = server.getRecycleConnection(index);if (rws != null) {try {if (loadSession(session, index, backing.getId(),rws, updateCount)) {loadCount--;updateCount = session.getUpdateCount();}} catch (IOException e) {rws.getReadStream().close();rws.getWriteStream().close();rws = null;}}if (rws == null) {rws = server.getSessionConnection(index);if (rws != null &&loadSession(session, index, backing.getId(),rws, updateCount)) {updateCount = session.getUpdateCount();loadCount--;}}}else if (loadSelf(session, updateCount)) {if (dbg.canWrite()) {dbg.log("[" + server.getServerId() + "] self-load(" + index + ") " +backing.getId() + " " + backing.getPath());}updateCount = session.getUpdateCount();loadCount--;}} catch (Exception e) {if (dbg.canWrite())dbg.log(e);}if (srunCount > 1)index = (index + 1) % srunCount;return loadCount < 2 && updateCount > 0;}2.3 对Session的处理流程2.3.1 新的请求(需要新生成一个原来在backing store中没有的session)的情况当有新的请求时,1) 执行Request.getSession(boolean create=true) (指调用Request类的getSession(Boolean create)函数, 并传参数create为true,下同) .2) Request.getSession(boolean create)调用AbstractRequest.createSession(boolean create, boolean hasOldSession)函数.3) AbstractRequest.createSession(boolean create, boolean hasOldSession)最后调用SessionManager.createSession(String oldId, long date, int sessionGroup,HttpServletRequest request)创建QSession对象(但只在内存中, 并未存储到backing store)4) 对Request的处理完成, 调用Request.finish().5)Request.finish()调用QSession.finish().6)QSession.Finish()调用SessionStore.Store(QSession Session)完成将session存储到backing store的过程.2.3.2对旧有Session的请求(backing store中存在此id的session)的情况1)执行Request.getSession(Boolean create=false)2)Request.getSession(boolean create)调用AbstractRequest.createSession(boolean create,boolean hasOldSession).3)AbstractRequest.createSession(boolean create, boolean hasOldSession)调用SessionManager.getSession(String key, long now)4)SessionManager.getSession(String key, long now)在内存Cache中查找此QSession对象, 如果需要reload, 还要从backing store中读取QSession对象的更新的值, 然后返回QSession对象.2.3.3非法请求(整个系统中不存在此id的session)的情况在Request类中的boolean isRequestedSessionIdValid()函数即能判断, 它将调用Request.getSession(false)在本JVM的内存cache和backing store中查找此id的session, 如果都找不到则返回false.附AbstractRequest.java的createSession(boolean create, boolean hasOldSession)函数的注解: protected QSession createSession(boolean create, boolean hasOldSession){Application application = getApplication();SessionManager manager = application.getSessionManager();String id = getRequestedSessionId(); //读取请求中发过来的session idlong now = Alarm.getCurrentTime();QSession session;if (id != null && id.length() > 6) {session = manager.getSession(id, now); //从内存cache中读取此id的QSession对象, 没if (session == null) { //有则创建一个}else if (session.isValid()) //成功则返回该QSession对象return session;elseid = null;}if (hasOldSession)id = null;if (! create)return null;// Must accept old ids because different applications in the same// server must share the same cookie//// But, if the session group doesn't match, then create a new// session.session = manager.createSession(id, now, getSessionGroup(), this); //新建QSession对象if (session != null) //注意创建QSession对象和创建一个存储在backing store中//session不是一回事.setHasCookie();if (id != null)return session;if (manager.enableSessionCookies())getResponse().setSessionId(session.getId());return session; //返回新创建的QSession对象}。
Linux下resin的安装以及配置1、安装要求安装了 jdk1.5或以上版本,并且配置好环境变量2、安装版本resin-2.1.17.tar.gz3、安装PS:如果安装时在可视化界面中,可以直接复制安装程序到本机的/home文件夹下。
复制方法:进入U盘复制安装程序,然后点击桌面上的计算机—文件系统—找到home 文件夹,打开后粘贴即可。
如果没有可视化操作界面或者想要尝试命令复制,可以进行以下步骤:安装程序放在/home//目录下先进入U盘文件夹#cd /media/disk(后面跟U盘的名字)#ls(查看U盘中的内容)复制文件到home中cp /media/U盘的名字/文件所在文件夹的名字/文件名(全名,带拓展名) /home(/home 可以改为需要复制到的文件夹的名字,和前面的语句中间有个空格,请注意)进入安装目录#cd /home/解压文件包#tar -zxvf resin-2.1.17.tar.gz(文件包的名字)安装完成后,将resin-2.1.17改名为resin#mv resin-2.1.17 resin(文件夹的名字)进入resin目录#cd resin安装#./configure#make#make install可能会出现错误,这是与环境不兼容造成的,可以忽略。
4、检查安装成功先启动resin服务#/home/resin/bin/./httpd.sh在浏览器中用 http://localhost:8080 即可访问到resin的默认页面,如果局域网访问需要打开防火墙。
出现英文界面,表示resin安装成功5、配置Resin5.1、修改端口号修改conf/resin.conf将8080端口改为80端口#vi /home/resin/conf/resin.conf按下键拉至<http port=”8080”>改为< http port=”80”>删除例子(从下往上删除最下面的<web-app>中的内容,从<!-- -The following…一直到<web-app id=’/examples/login’ />,可以拉到下面从后往前删输入:wq进行保存并退出)到5.2、优化(根据具体情况定,一般情况下可以忽略,直接进入下一步)<!-- JVM参数设置 --><jvm-arg>-Xmx2048m</jvm-arg><jvm-arg>-Xss1024m</jvm-arg><jvm-arg>-Xdebug</jvm-arg><jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg><!-- Uncomment to enable admin heap dumps 去掉下面行以管理内存堆的倾倒 --> <!-- <jvm-arg>-agentlib:resin</jvm-arg> --><watchdog-arg>-Dcom.sun.management.jmxremote</watchdog-arg><!-- 强制resin强制重起时的最小空闲内存 --><memory-free-min>1M</memory-free-min><!-- 最大线程数量. --><thread-max>4000</thread-max><!-- 套接字等待时间 --><socket-timeout>65s</socket-timeout><!-- 配置 keepalive --><keepalive-max>2500</keepalive-max><keepalive-timeout>15s</keepalive-timeout><!-- 设置缓存页、静态也的延时值 --><cache-mapping url-pattern="/" expires="5s"/><cache-mapping url-pattern="*.gif" expires="60s"/><cache-mapping url-pattern="*.jpg" expires="60s"/><cache-mapping url-pattern="*.png" expires="60s"/>6、修改防火墙# vi /etc/sysconfig/iptables加入一行指令-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT输入:wq保存并退出重启防火墙# /etc/rc.d/init.d/iptables restart启动服务#/home/resin/bin/./httpd.sh让linux启动的时候resin能够自动运行#cp /home/resin/contrib/init.resin /etc/rc.d/init.d/resin#chmod +x /etc/rc.d/init.d/resin (请在此文件中配置好JAVA_HOME及RESIN_HOME)#chkconfig --level 345 resin onservice resin start(出现Staring resin..系统当前日期后,在浏览器中输入localhost:80,出现英文界面后,resin安装成功。
Resin服务器配置指南resin虚拟内存设置文章分类:Java编程show grants for root@localhost;说明RESIN_HOME - 表示resin的安装目录-Xms512m - 表示初始占用内存512MB-Xmx1024m - 表示最在可占用内存1024MBResin 3.0.x Linux下修改位置:RESIN_HOME\bin\httpd.sh 文件中找到args= 这行,修改成args="-J-server -Xms512m -Xmx1024m"设置JAVA虚拟机的内存使用量。
Windows下httpd.exe -Xms512m -Xmx1024mResin 3.1.x 同时适用于Linux和Windows修改位置:RESIN_HOME\conf\resin.conf找到如下内容<jvm-arg>-Xmx256m</jvm-arg><jvm-arg>-Xss1m</jvm-arg>修改成如下:<jvm-arg>-Xms512m</jvm-arg><jvm-arg>-Xmx1024m</jvm-arg><jvm-arg>-Xss1m</jvm-arg>3Jdk和Resin安装步骤1. 下载jdk linux版本, j2sdk-1_4_2_10-linux-i586.bin。
2. 下载resin-2.1.17.tar.gz。
或更好版本3. 直接输入:j2sdk-1_4_2_10-linux-i586.bin就可以安装成功。
本身它有安装脚本。
4. 修改用户根目录下配置文件。
(1)ls -a 查看文件(2)vi .bash_profile 添加:exportJAVA_HOME=/home/usboss/j2sdk1.4.2_10/Note:配置这个文件类似于windows的配置windows的环境变量。
Resin服务器的使用(一篇不错...一、Java Web服务器选择简介在实际进行java Web项目实施的时候,我们能采用的商业java Web服务器有Ibm WebSphere,Bea Web Logic。
这两种服务器功能齐全而强大,支持所有的java 服务容器标准,适合成品商业java Web应用的发布。
不过这两种服务器是商业服务器,价格昂贵,而且对系统资源需求极高。
特别是Websphere 设置复杂,如果不配合采用ibm Websphere Studio Application非常不适合研发。
而且他们不同的版本对servlet.jar等javax组件和jdk的需求不同。
如Websphere 3.5所需求的servlet.jar 支持的是旧版本的javax.servlet.http.HttpSession操作,不支持session.setAttribute() session.getAttribute()。
在研发或学习过程中,有许多免费的轻型的Java Web服务器能供我们选用,如Tomcat,Resin,Orion等等。
他们使用都非常方便,占用资源也非常少,适合研发中不断的调试;还能和Jbuilder这样的集成研发工具集成使用。
根据实际研发中的情况来看,Jakata Tomcat 和Sun Java结合的最佳,和其他应用服务器配合使用可支持完整的j2ee标准,应用也非常广泛。
不过从Java 普遍存在的编码问题来看,还是Resin 解决的最佳。
更有从使用的角度讲,个人认为Resin比Tomcat方便,而且Resin也能结合Jbuilder6等ide使用。
Resin强调使用Xml技术,从Resin自己的HomePage使用xtp就能看出来。
二、Resin的安装和设置Resin 能在/download/index.xtp 免费下载和使用。
使用Resin 研发或学习是免费的,不过如果把Resin作为收费产品发布是需要付费的。
Resin配置说明打开resin文件夹,找conf文件下的resin.conf文件1,首先就是链接池这块;<resource-ref><res-ref-name>whgc</res-ref-name> \\ whgc连接池名,根据不同程序可替换<res-type>javax.sql.DataSource</res-type><init-param driver-name="com.sybase.jdbc2.jdbc.SybDriver"/>//驱动名,根据不同数据库可替换<init-paramurl="jdbc:sybase:Tds:192.168.0.70:4000/whgc?charset=cp936&jconnect_version=2"/>//数据源(根据不同数据库,IP,端口,数据库名可替换)<init-param user="sa"/>//用户名可替换<init-param password=""/>//密码可替换<init-param max-connections="20"/> //允许链接的最大数<init-param max-idle-time="30"/>//一个空置的链接被存放在链接池的最大时间</resource-ref>2.<app-dir>h:\whgc1</app-dir> //在<app-dir></app-dir>标记对中的表示resin的根,相当于Apache的htdocs 或者IIS 的wwwroot3. <http host='192.168.0.130' port='80'/>// host参数指定的是服务器,port指定的是http端口,默认是localhost和8080。
resin服务之⼀---安装及部署参考⽹站:⼀、resin产⽣背景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环境准备及安装resin环境安装准备1)系统环境2)软件需求系统:centos5.8(x86_64)centos6.4(x86_64)软件: jdk-6u34-fcs-bin-b04-linux-amd64-19_jul_2012.bin 或者 jdk-6u34-linux-x64.bin版本需求:Resin 3.1 needs Java before it can run.It needs JDK 1.5 or a later JDK.Resin 3.1 needs Java before it can run.Resin requires JDK 6.0 or later.httpd-2.2.23.tar.gz地址:安装JDK环境1)下载JDK或者上传jdk-6u34-linux-x64.bin到/home/peng/tools[root@data-1-1 tools]# ll jdk-6u34-linux-x64.bin-rwxr-xr-x 1 root root 72036348 Jan 8 2016 jdk-6u34-linux-x64.bin2)增加权限并安装[root@data-1-1 tools]# chmod +x jdk-6u34-linux-x64.bin[root@data-1-1 tools]# ./jdk-6u34-linux-x64.bin[root@data-1-1 tools]# ls -ld jdk1.6.0_34/drwxr-xr-x 8 root root 4096 Nov 29 00:48 jdk1.6.0_34/安装完成后,会在当前⽬录下建⽴jdk1.6.0_34/的⽬录。
目录一、WINDOWS版配置 (1)1、JAVA运行环境的安装与配置 (1)(1) 下载 (1)(2) 安装 (2)(3) 配置 (4)2、应用服务器的安装与配置 (5)(1) Tomcat (5)1、下载与安装 (5)2、启动与停止 (5)3、修改启动端口号 (6)4、配置虚拟目录 (6)5、配置虚拟主机 (7)6、web.xml配置修改 (8)7、性能优化 (9)8、数据库连接配置 (11)(2) Apache (11)1、下载与安装 (11)2、Tomcat-Connectors下载 (16)3、与Tomcat的整合(负载均衡) (16)1)Apache配置修改 (16)2)Tomcat配置修改 (18)4、Apache优化 (19)(3) Nginx (20)1、下载与安装 (20)2、启动与停止 (21)3、与Tomcat整合(负载均衡) (21)1)Nginx配置修改 (21)2)Tomcat配置修改 (22)4、Nginx优化 (23)(4) Resin (24)1、下载与安装 (24)2、启动与停止 (24)3、配置虚拟目录 (25)一、Windows版配置1、JAVA运行环境的安装与配置(1)下载下载jdk-6u3-windows-i586-p版本JDK。
(2)安装接收许可证协议。
选择JDK安装路径,默认路径C:\Program Files\Java\jdk1.6.0_03\,实际安装过程可以选择其他路径,如D:\Java\jdk1.6.0。
一般建议不要安装在操作系统所在的盘上,以免操作系统出现问题而无法使用或重新安装。
正在安装JRE,请耐心等待。
选择安装JRE路径,默认路径C:\Program Files\Java\jre1.6.0_03\,实际安装过程可以选择其他路径,如D:\Java\jre1.6.0\。
一般建议不要安装在操作系统所在的盘上,以免操作系统出现问题而无法使用或重新安装。
resin 添加library-loader 参数-概述说明以及解释1.引言1.1 概述概述:在开发和部署应用程序时,Resin 是一个知名的Java 应用服务器,它提供了一系列功能强大的特性和工具,使得在生产环境中部署和管理Java 应用变得更加高效和方便。
其中一个重要的功能就是library-loader 参数,它可以帮助我们更好地管理应用程序中的依赖库和资源文件。
本文将从以下几个方面介绍resin 的library-loader 参数,包括它的作用、如何添加参数以及添加参数的重要性和应用建议。
通过深入了解和有效使用library-loader 参数,我们可以更好地优化和提升应用程序的性能和可靠性。
1.2 文章结构本文将分为引言、正文和结论三部分来探讨resin添加library-loader 参数的相关内容。
在引言部分,将对resin和library-loader参数进行简要介绍,同时说明本文的目的和意义。
在正文部分,将详细解释resin是什么以及library-loader参数的作用,然后介绍如何添加library-loader参数。
最后在结论部分,将总结resin添加library-loader参数的重要性,并提出应用建议和展望未来的发展方向。
通过对这些内容的讨论,读者将能够全面了解和掌握resin添加library-loader参数的相关知识。
1.3 目的:在本文中,我们的目的是探讨如何通过添加library-loader参数来改善resin的性能和功能。
通过深入了解resin和library-loader参数的作用,我们希望读者能够理解为什么要使用这个参数以及如何正确添加它。
同时,我们也希望引起读者对于优化服务器性能和提升应用程序效率的重要性的关注,以便他们在实际应用中能够更好地利用这一技术。
最终,我们的目的是帮助读者提升对于resin和相关技术的理解,从而更好地应用它们在实践中。
redis的config命令及配置Redis 配置Redis 的配置⽂件位于 Redis 安装⽬录下,⽂件名为 redis.conf。
你可以通过 CONFIG 命令查看或设置配置项。
语法Redis CONFIG 命令格式如下:redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME实例redis 127.0.0.1:6379> CONFIG GET loglevel1) "loglevel"2) "notice"使⽤ * 号获取所有配置项:实例redis 127.0.0.1:6379> CONFIG GET *1) "dbfilename"2) "dump.rdb"3) "requirepass"4) ""5) "masterauth"6) ""7) "unixsocket"8) ""9) "logfile"10) ""11) "pidfile"12) "/var/run/redis.pid"13) "maxmemory"14) "0"15) "maxmemory-samples"16) "3"17) "timeout"18) "0"19) "tcp-keepalive"20) "0"21) "auto-aof-rewrite-percentage"22) "100"23) "auto-aof-rewrite-min-size"24) "67108864"25) "hash-max-ziplist-entries"26) "512"27) "hash-max-ziplist-value"28) "64"29) "list-max-ziplist-entries"30) "512"31) "list-max-ziplist-value"32) "64"33) "set-max-intset-entries"34) "512"35) "zset-max-ziplist-entries"36) "128"37) "zset-max-ziplist-value"38) "64"39) "hll-sparse-max-bytes"40) "3000"41) "lua-time-limit"42) "5000"43) "slowlog-log-slower-than"44) "10000"45) "latency-monitor-threshold"46) "0"47) "slowlog-max-len"48) "128"49) "port"50) "6379"51) "tcp-backlog"52) "511"53) "databases"54) "16"55) "repl-ping-slave-period"56) "10"57) "repl-timeout"58) "60"59) "repl-backlog-size"60) "1048576"61) "repl-backlog-ttl"62) "3600"63) "maxclients"64) "4064"65) "watchdog-period"66) "0"67) "slave-priority"68) "100"69) "min-slaves-to-write"70) "0"71) "min-slaves-max-lag"72) "10"73) "hz"74) "10"75) "no-appendfsync-on-rewrite"76) "no"77) "slave-serve-stale-data"78) "yes"79) "slave-read-only"80) "yes"81) "stop-writes-on-bgsave-error"82) "yes"83) "daemonize"84) "no"85) "rdbcompression"86) "yes"87) "rdbchecksum"88) "yes"89) "activerehashing"90) "yes"91) "repl-disable-tcp-nodelay"92) "no"93) "aof-rewrite-incremental-fsync"94) "yes"95) "appendonly"96) "no"97) "dir"98) "/home/deepak/Downloads/redis-2.8.13/src"99) "maxmemory-policy"100) "volatile-lru"101) "appendfsync"102) "everysec"103) "save"104) "3600 1 300 100 60 10000"105) "loglevel"106) "notice"107) "client-output-buffer-limit"108) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60" 109) "unixsocketperm"110) "0"111) "slaveof"112) ""113) "notify-keyspace-events"114) ""115) "bind"116) ""编辑配置你可以通过修改 redis.conf ⽂件或使⽤ CONFIG set 命令来修改配置。
(转载)Resin安装配置及使⽤教程Resin是⼀个提供⾼性能的,⽀持 Java/PHP 的应⽤服务器。
⽬前有两个版本:⼀个是GPL下的开源版本,提供给⼀些爱好者、开发⼈员和低流量⽹站使⽤;⼀种是收费的专业版本,增加了⼀些更加适⽤于⽣产环境的特性。
Resin也可以和许多其他的⼀起⼯作,⽐如Apache Server和IIS等。
Resin⽀持Servlets 2.3标准和JSP 1.2标准。
熟悉ASP和PHP的⽤户可以发现⽤Resin来进⾏JSP编程是件很容易的事情。
Resin⽀持负载平衡,可以增加WEB站点的可靠性。
⽅法是增加服务器的数量。
⽐如⼀台Server的错误率是1%的话,那么⽀持负载平衡的两个Resin服务器就可以使错误率降到0.01%。
到⽬前为⽌,Resin对WEB应⽤的⽀持已经远远超过Tomcat等各种⼤型的Server。
服务器区 / 25.8M / 中⽂Resin的⼀些特性:可靠性:Resin包含了很多可靠的特性,包括服务器⾃动重启、检测并重启死锁的服务器、管理JVM内存以防⽌内存泄露等。
集群:Resin可以将多个服务器作为⼀个服务器来对客户进⾏响应,从⽽增强服务器的扩展能⼒。
持久和分布的sessions:持久的session能够在服务器重启的时候保持现有的Http会话,分布式的session可以在多个服务器之间共享Http会话的状态。
增强的本地代码:同时为Windows和Linux系统提供了本地的代码增强⽀持。
能够改善Socket链接、持久链接和⽂件读写⽅⾯的性能。
OpenSSL:提供原⽣的OpenSSL库⽀持,⽐JSSE提供的⽅案要好很多。
HTTP代理缓存:能够通过内存和磁盘缓存系统提⾼服务器的性能表现,将动态页⾯的速度提⾼到接近静态页⾯。
Gzip过滤器:通过gzip来减少带宽。
Resin服务器的安装(Windows - 独⽴版)1、安装或更⾼2、确保JDK的安装以及正确设置了环境变量JAVA_HOME3、解压Resin⽂件4、执⾏ java –jar resin-3.1.8/lib/resin.jar5、或者运⾏ http.exe6、在浏览器地址栏中输⼊ http://localhost:8080 即可进⾏访问我们也可以将Resin设置为系统服务。
升级resin-pro并配置https1、备份整个console和portal目录,假设备份后的目录为console_bak和portal_bak2、解压resin-pro-4.0.25.tar.gz,并改名为console或portal(以下以console为例),保持新console和老console目录一致,这样可以不必修改配置文件resin-pro-4.0.25.tar.gz3、检查4A主机上是否安装了openssl[root@localhost ~]# which openssl/usr/local/bin/openssl或者[root@localhost ~]# openssl versionOpenSSL 0.9.8b 04 May 2006[root@localhost ~]#4、如果未安装过则解压openssl-0.9.8b.tar.gz,并安装opensslopenssl-0.9.8b.tar.gz[root@localhost ~]tar -zxvf openssl-0.9.8b.tar.gz[root@localhost ~]cd openssl-0.9.8b[root@localhost openssl-0.9.8b]./config shared --openssldir=/usr/local/openssl[root@localhost openssl-0.9.8b]make[root@localhost openssl-0.9.8b]make install至此安装完成openssl(安装位置:/usr/local/openssl)。
修改环境变量[root@localhost ~]vi /etc/profile在文件最后加入export LD_LIBRARY_PATH=/usr/local/openssl/lib保存后退出登录重新登录后继续下面的操作5、进入resin根目录并编译安装resin,使其支持openssl(假设console根目录为$CONSOLE_HOME)[root@localhost ~] cd $CONSOLE_HOME[root@localhost console]./configure --prefix=$CONSOLE_HOME --with-openssl=/usr/local/openssl[root@localhost console]make[root@localhost console]make install至此resin编译完成并支持了openssl,可以看到多了个libexe目录,其内有so文件6、从备份的console中将必要的文件复制到新的resin中,要复制的文件包括:etc、plugins目录及webapps下的console目录,bin下的启停脚本startConsole.sh和stopConsole.sh7、修改新console的端口配置[root@localhost console]cd conf[root@localhost conf]vi resin.properties修改以下内容# Set HTTP and HTTPS portshttp : 8080https : 8443如果不想用户使用http,请将http改为一个用户不知道的端口8、启动脚本,跟踪jvm-app-0.log,看console应用是否被加载,也可以直接访问http://IP:8080/console,看是否能打开页面9、如果console未被加载则需要修改resin.xml配置[root@localhost console]cd conf[root@localhost conf]vi resin.xml将以下内容<web-app id="/" root-directory="webapps/ROOT"/>修改为:<web-app id="console" root-directory="webapps/console"/>10、在使用http方式可以正常访问console的前提下,通过https://ip:8443/console访问管理平台,出现以下页面点击“继续浏览此网站(不推荐)。
为java web应用部署resin服务器简略步骤:1 点击Run图标下面的Run configuration 或者debug图标下面的debug configuration2 新建new launch configuration 填写Name Project MainClass注意左侧选择未java application参考配置:Name:test1(自己根据情况填写)Project:你的项目名字MainClass:com.cauche.server.resin.ResinProgram Argument:-conf "E:\resin-4.04\conf\resin-test1.xml" //配置文件的目录VM argument:-Dresin.home = E:\resin-4.04-Djava.util.logging.manager = com.cauche.log.LogManagerImplResin配置文件<!-- - Resin 4.04配置文件. --><resin xmlns="/ns/resin" xmlns:resin="/ns/resin/core"><!-- 加载resin/lib下的所有.jar文件--><class-loader><tree-loader path="${resin.home}/lib"/><tree-loader path="${resin.root}/lib"/></class-loader><!-- - 管理配置--><management path="${resin.root}/admin"></management><!-- -JDK日志接口的配置. --><log name="" path="stdout:" timestamp="[%H:%M:%S.%s] "/><!-- 日志信息的级别:'info' 生产环境'fine' 开发环境'finer' 调试环境--><logger name="com.caucho" level="info"/><logger name="com.caucho.java" level="config"/><logger name="com.caucho.loader" level="config"/><!-- - 环境上下文的检测时间,对于生产站点, 这个要设置长一点,例如600秒,10分钟--><dependency-check-interval>2s</dependency-check-interval><!-- - 发送邮件通知的SMTP服务器--><system-property mail.smtp.host="127.0.0.1"/><system-property mail.smtp.port="25"/><!-- - 你可以把编译器改成"javac", "eclipse" 或者"internal". --><javac compiler="internal" args="-source 1.5"/><!-- Security providers.- <security-provider>- .ssl.internal.ssl.Provider- </security-provider>--><!-- 去掉注释,如果你使用resin提供的xml应用-- <system-property javax.xml.parsers.DocumentBuilderFactory- ="com.caucho.xml.parsers.XmlDocumentBuilderFactory"/>- <system-property javax.xml.parsers.SAXParserFactory- ="com.caucho.xml.parsers.XmlSAXParserFactory"/>--><cluster id="app-tier"><!-- 设置集群上下文的根, 相对于server.root --><root-directory>.</root-directory><server-default><!-- HTTP服务的端口--><http address="*" port="8080"/><!--- SSL端口配置:-- <http address="*" port="8443">- <openssl>- <certificate-file>keys/gryffindor.crt</certificate-file>- <certificate-key-file>keys/gryffindor.key</certificate-key-file>- <password>test123</password>- </openssl>- </http>- <!-- 默认配置: -->- <http address="*" port="8443">- <jsse-ssl self-signed-certificate-name="resin@localhost"/>- </http>--><!-- - JVM参数设置--><jvm-arg>-Xmx256m</jvm-arg><jvm-arg>-Xss1m</jvm-arg><jvm-arg>-Xdebug</jvm-arg><jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg><!-- Uncomment to enable admin heap dumps 去掉这个如果你想管理内存堆的倾倒- <jvm-arg>-agentlib:resin</jvm-arg>--><watchdog-arg>-Dcom.sun.management.jmxremote</watchdog-arg><!-- 强制resin强制重起时的最小空闲内存--><memory-free-min>1M</memory-free-min><!-- 最大线程数量. --><thread-max>256</thread-max><!-- 套接字等待时间--><socket-timeout>65s</socket-timeout><!-- 配置keepalive --><keepalive-max>128</keepalive-max><keepalive-timeout>15s</keepalive-timeout><!-- - 如果使用的是UNIX,这里是启动的帐号和用户组.- <user-name>resin</user-name>- <group-name>resin</group-name>--></server-default><!-- 定义群集服务器--><server id="" address="127.0.0.1" port="6800"/><!-- Configures the persistent store for single-server or clustered 配置独立服务器或者群集的持久化存储,专业版的功能--><resin:if test="${resin.isProfessional()}"><persistent-store type="cluster"><init path="session"/></persistent-store></resin:if><!-- 为了安全, 你可以为SSL会话(SSL sessions)定义一个不同的cookie.- <ssl-session-cookie>SSL_JSESSIONID</ssl-session-cookie>--><!-- 缓存启用(专业版的功能) --><resin:if test="${isResinProfessional}"><cache path="cache" memory-size="64M"><!-- Vary header rewriting for IE --><rewrite-vary-as-private/></cache></resin:if><!-- 启用周期性的服务器状态检查和死锁检查,所有的服务器可以添加<url> 来检查。
为java web应用部署resin服务器简略步骤:1 点击Run图标下面的Run configuration 或者debug图标下面的debug configuration2 新建new launch configuration 填写Name Project MainClass注意左侧选择未java application参考配置:Name:test1(自己根据情况填写)Project:你的项目名字MainClass:com.cauche.server.resin.ResinProgram Argument:-conf "E:\resin-4.04\conf\resin-test1.xml" //配置文件的目录VM argument:-Dresin.home = E:\resin-4.04-Djava.util.logging.manager = com.cauche.log.LogManagerImplResin配置文件<!-- - Resin 4.04配置文件. --><resin xmlns="/ns/resin" xmlns:resin="/ns/resin/core"><!-- 加载resin/lib下的所有.jar文件--><class-loader><tree-loader path="${resin.home}/lib"/><tree-loader path="${resin.root}/lib"/></class-loader><!-- - 管理配置--><management path="${resin.root}/admin"></management><!-- -JDK日志接口的配置. --><log name="" path="stdout:" timestamp="[%H:%M:%S.%s] "/><!-- 日志信息的级别:'info' 生产环境'fine' 开发环境'finer' 调试环境--><logger name="com.caucho" level="info"/><logger name="com.caucho.java" level="config"/><logger name="com.caucho.loader" level="config"/><!-- - 环境上下文的检测时间,对于生产站点, 这个要设置长一点,例如600秒,10分钟--><dependency-check-interval>2s</dependency-check-interval><!-- - 发送邮件通知的SMTP服务器--><system-property mail.smtp.host="127.0.0.1"/><system-property mail.smtp.port="25"/><!-- - 你可以把编译器改成"javac", "eclipse" 或者"internal". --><javac compiler="internal" args="-source 1.5"/><!-- Security providers.- <security-provider>- .ssl.internal.ssl.Provider- </security-provider>--><!-- 去掉注释,如果你使用resin提供的xml应用-- <system-property javax.xml.parsers.DocumentBuilderFactory- ="com.caucho.xml.parsers.XmlDocumentBuilderFactory"/>- <system-property javax.xml.parsers.SAXParserFactory- ="com.caucho.xml.parsers.XmlSAXParserFactory"/>--><cluster id="app-tier"><!-- 设置集群上下文的根, 相对于server.root --><root-directory>.</root-directory><server-default><!-- HTTP服务的端口--><http address="*" port="8080"/><!--- SSL端口配置:-- <http address="*" port="8443">- <openssl>- <certificate-file>keys/gryffindor.crt</certificate-file>- <certificate-key-file>keys/gryffindor.key</certificate-key-file>- <password>test123</password>- </openssl>- </http>- <!-- 默认配置: -->- <http address="*" port="8443">- <jsse-ssl self-signed-certificate-name="resin@localhost"/>- </http>--><!-- - JVM参数设置--><jvm-arg>-Xmx256m</jvm-arg><jvm-arg>-Xss1m</jvm-arg><jvm-arg>-Xdebug</jvm-arg><jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg><!-- Uncomment to enable admin heap dumps 去掉这个如果你想管理内存堆的倾倒- <jvm-arg>-agentlib:resin</jvm-arg>--><watchdog-arg>-Dcom.sun.management.jmxremote</watchdog-arg><!-- 强制resin强制重起时的最小空闲内存--><memory-free-min>1M</memory-free-min><!-- 最大线程数量. --><thread-max>256</thread-max><!-- 套接字等待时间--><socket-timeout>65s</socket-timeout><!-- 配置keepalive --><keepalive-max>128</keepalive-max><keepalive-timeout>15s</keepalive-timeout><!-- - 如果使用的是UNIX,这里是启动的帐号和用户组.- <user-name>resin</user-name>- <group-name>resin</group-name>--></server-default><!-- 定义群集服务器--><server id="" address="127.0.0.1" port="6800"/><!-- Configures the persistent store for single-server or clustered 配置独立服务器或者群集的持久化存储,专业版的功能--><resin:if test="${resin.isProfessional()}"><persistent-store type="cluster"><init path="session"/></persistent-store></resin:if><!-- 为了安全, 你可以为SSL会话(SSL sessions)定义一个不同的cookie.- <ssl-session-cookie>SSL_JSESSIONID</ssl-session-cookie>--><!-- 缓存启用(专业版的功能) --><resin:if test="${isResinProfessional}"><cache path="cache" memory-size="64M"><!-- Vary header rewriting for IE --><rewrite-vary-as-private/></cache></resin:if><!-- 启用周期性的服务器状态检查和死锁检查,所有的服务器可以添加<url> 来检查。