Resin配置说明

目前认识到的主流web服务器有

1. resin

2. Tomcat

3. Jetty

Jetty作为一个ava-based HTTP web server和java servlet容器,通常用在软件框架中机器之间的通信,常见的应用在Apache Spark、Maven、Hadoop、Eclipse插件等。

Tomcat作为Apache的开源软件具有良好的性能,可能是目前使用最广泛的web服务器之一。

Resin是Caucho公司推出的,Pro版本收费(没使用过),并发能力非常好,和Nginx配合起来,可以支持一天亿级别的访问,配置也不繁琐,值得大家了解。


首先说明,Resin文档中的功能(Load balancer、Proxy Cache、JMS Queue等)只在Pro版本中可以使用,在配置文件示例中只展示Resin作为一个Application Server的配置

文档参考:http://caucho.com


${resin.home}: the install location of resin in machine;
${resin.root}: the location of virtual host;


<!--
   - Resin 3.1 configuration file.
  -->
<resin xmlns="http://caucho.com/ns/resin"
       xmlns:resin="http://caucho.com/ns/resin/core">

    <!-- load class in resin/lib/ -->
    <class-loader>
        <tree-loader path="${resin.home}/lib"/>
        <tree-loader path="${resin.root}/lib"/>
    </class-loader>

    <!-- log config -->
    <log name="" level="info" path="stdout:"
         timestamp="[%H:%M:%S.%s] {%{thread}} "/>
    <logger name="com.caucho" level="info"/>
    <logger name="com.caucho.java" level="config"/>
    <logger name="com.caucho.loader" level="config"/>
    
    <!-- log  home config -->
    <stdout-log path="${log.home}/stdout.log" rollover-period="1D" rollover-count="5"/>
    <stderr-log path="${log.home}/stderr.log" rollover-period="1D" rollover-count="5"/>

    <!-- check xml interval and restart web-server when it is changed. -->
    <dependency-check-interval>2s</dependency-check-interval>

    <!-- smtp server for email -->
    <system-property mail.smtp.host="127.0.0.1"/>
    <system-property mail.smtp.port="25"/>

    <!-- compiler -->
    <javac compiler="internal" args="-source 1.6"/>

    <cluster id="app-tier">
        <root-directory>.</root-directory>

        <server-default>
            <http address="*" port="8080"/>
            <jvm-arg>-Xms2048m</jvm-arg> <!-- inital java heap size -->
            <jvm-arg>-Xmx2048m</jvm-arg> <!-- maximum java heap size OutOfMemory -->
            <jvm-arg>-Xmn512m</jvm-arg>  <!-- the size of the heap for the young generation -->
            <jvm-arg>-Xss1m</jvm-arg>    <!-- the stack size for each thread java.lang.StackOverflowError -->
            <jvm-arg>-XX:PermSize=256M</jvm-arg>    <!-- non-heap memory size, Permanent Generation space: java.lang.OutOfMemoryError: PermGen space-->
            <jvm-arg>-XX:MaxPermSize=256M</jvm-arg>
            <jvm-arg>-XX:SurvivorRatio=8</jvm-arg>          <!-- Survivor / Eden -->
            <jvm-arg>-XX:MaxTenuringThreshold=15</jvm-arg>  <!-- times an object be moved to old generation -->
            <jvm-arg>-XX:+UseParallelOldGC</jvm-arg>        <!-- parall gc young and old generation -->
            <jvm-arg>-XX:GCTimeRatio=19</jvm-arg>           <!-- application time = 19 / (19 + 1) -->

            <jvm-arg>-Xdebug</jvm-arg>   <!-- remote debug -->
            <jvm-arg>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4##port##</jvm-arg>

            <jvm-arg>-XX:+PrintGCDetails</jvm-arg>     <!-- print GC details -->
            <jvm-arg>-XX:+PrintGCTimeStamps</jvm-arg>
            <jvm-arg>-XX:+PrintClassHistogram</jvm-arg> <!-- kill -3 pid -->
            <jvm-arg>-XX:-TraceClassUnloading</jvm-arg>
            <jvm-arg>-verbose:gc</jvm-arg>
            <jvm-arg>-Xloggc:${deploy.log.home}/${content.spider.project.name}-##port##/gc.log</jvm-arg>
            <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>  <!-- For memory Moinotr: bin/Jconsole-->
            <jvm-arg>-Dcom.sun.management.jmxremote.port=1##port##</jvm-arg>
            <jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
            <jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg>
            
            <jvm-arg>-Dfile.encoding=UTF-8</jvm-arg>
            <jvm-arg>-Dsun.jnu.encoding=UTF-8</jvm-arg>

            <watchdog-jvm-arg>-Dcom.sun.management.jmxremote</watchdog-jvm-arg>
            <watchdog-port>28080</watchdog-port>

            <!-- resin will restart when memory is below this value -->
            <memory-free-min>1M</memory-free-min>

            <thread-max>2048</thread-max>

            <socket-timeout>6s</socket-timeout>

            <keepalive-max>64</keepalive-max>
            <keepalive-timeout>5s</keepalive-timeout>
        </server-default>

        <server id="" address="127.0.0.1" port="38080"/>

        <web-app-default>
            <!-- Maps url patterns to servlets. -->
            <servlet-mapping servlet-class='com.caucho.servlets.ResinStatusServlet'>
                <url-pattern>/resin-status</url-pattern>
                <init enable="read"/>
            </servlet-mapping>

            <!--  设置缓存页、静态页的延时值, --> 
            <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"/>
        </web-app-default>

        <!-- import web application default action -->
        <resin:import path="${deploy.resin.home}/conf/app-default.xml"/>

        <host-default>
            <access-log path="${log.home}/access.log"
                        format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %D'
                        rollover-period="1D" rollover-count="7"/>

            <web-app-deploy path="webapps"/>
            <ear-deploy path="deploy">
                <ear-default>
                    <ejb-server>
                        <config-directory>WEB-INF</config-directory>
                    </ejb-server>
                </ear-default>
            </ear-deploy>
            <resource-deploy path="deploy"/>
        </host-default>

        <host-deploy path="hosts">
            <host-default>
                <resin:import path="host.xml" optional="true"/>
            </host-default>
        </host-deploy>

        <host id="" root-directory=".">
            <web-app id="/" root-directory="webapp">
            </web-app>
        </host>
    </cluster>
</resin>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值