美文网首页
resin4.0配置运行总结

resin4.0配置运行总结

作者: code_plus | 来源:发表于2017-05-30 20:02 被阅读0次

    安装

    Install JDK 6 or later and link /usr/java to the Java home or define the environment variable JAVA_HOME.
    tar -vzxf resin-4.0.x.tar.gz
    cd resin-4.0.x #修改文件名貌似会出问题
    ./configure --prefix=`pwd`
    some details on the ./configure options.
    make
    sudo make install
    Execute sudo resinctl start
    or run java -jar lib/resin.jar start
    Browse to http://localhost:8080
    

    启动

    resinctl

    1. Start resin with resinctl start
    2. Stop resin with resinctl stop
    3. Restart resin with resinctl restar

    resin.sh

    bin/resin.sh start|restart|stop -server <server-id>
    

    配置

    概念和命名约定

    • cluster - a collection of identically-configured servers.
    • environment - isolated class-loader contexts with shared resources: server, host and web-app are the main environments.
    • host - a HTTP virtual host.
    • proxy cache - HTTP proxy cache.
    • resource - drivers or services available to the application though JNDI or CDI like databases, JMS queues, custom CDI-configured service. Resin-specific resources include security, authenticators, health-checks and the rewrite/dispatch system.
    • rewrite/dispatch - the configuration for dispatching HTTP URLs to servlets and response codes like Apache's mod_rewrite.
    • server - a Resin JVM instance. There may be multiple servers on a machine.
    • watchdog - a JVM instance which watches over the Resin server and restarts the server if necessary.
    • web-app - a HTTP web-application which runs servlets.

    resin.xml

    删除社区版不支持的功能

    health

    <!--
        - health configuration
    -->
    <resin:import path="${__DIR__}/health.xml"/>
    

    loadbalance

    <web-app id="">
        <resin:LoadBalance regexp="" cluster="app"/>
    </web-app>
    

    删除不需要的cluster

    <cluster id="proxycache">
        ...
    </cluster>
    <cluster id="memcached" xmlns:memcache="urn:java:com.caucho.memcached">
        ...
    </cluster>
    <cluster id="web">
        ...
    </cluster>
    

    只保留<cluster id="app">即可

    server

    端口

    resin server涉及的端口

    • WatchDog 的端口,默认6600
    • Server 监控端口,默认6800
    • 应用的HTTP端口,默认8080

    单个server

    <server id="k12yuwen" address="127.0.0.1" port="6801" > 
        <watchdog-port>6601</watchdog-port> 
        <http address="*" port="31001"/> 
    </server>
    

    多个server

    <server-multi id-prefix="app-" address-list="127.0.0.1" port="6801">  
        <watchdog-port>6601</watchdog-port>  
        <http address="*" port="8081"/>  
    </server-multi>
    

    jvm参数

    <cluster id="app">
        <server-default>
            <jvm-arg>-Xms32m</jvm-arg>
            <jvm-arg>-Xmx512m</jvm-arg>
            <jvm-arg>-Xss1m</jvm-arg>
            <jvm-arg>-verbosegc</jvm-arg>
            <jvm-arg>-Dfoo=bar</jvm-arg>
            <jvm-arg>-Dcaucho.smallmem</jvm-arg>
            <jvm-arg>-agentlib:resin</jvm-arg>
            <jvm-arg>-Xdebug</jvm-arg>
                
            <http port="8080"/>
        </server-default>
        <server id="a" address="192.168.2.1" port="6800"/>
        ...
    </cluster>
    

    参考

    http://www.caucho.com/resin-4.0/admin/starting-resin-command-line.xtp

    删除doc

    <resin:if test="${resin_doc}">
        <host id="${resin_doc_host}" root-directory="${resin_doc_host}">
            <web-app id="/resin-doc" root-directory="${resin.root}/doc/resin-doc"/>
        </host>
    </resin:if>
    

    添加自定义应用

    <web-app id="/" root-directory="/data/www/cms">  
    </web-app> 
    

    应用参数

    防止避免hash collision dos攻击、日志

    <web-app id="/k12yuwen" root-directory="webapps/k12yuwen-base">
        <form-parameter-max>100</form-parameter-max>
        <stderr-log path="${resin.root}/logs/k12yuwen/stderr.log" timestamp="[%Y-%m-%d %H:%M:%S]" rollover-period="1D"/>  
        <stdout-log path="${resin.root}/logs/k12yuwen/stdout.log" timestamp="[%Y-%m-%d %H:%M:%S]" rollover-period="1D"/>  
    </web-app>
    

    host 配置举例

    同一个域名下多个子app

    <cluster id="app">
        <!-- define the servers in the cluster -->
        <server-multi id-prefix="app-" address-list="${app_servers}" port="6801"/>
    
        <host-default>
          <!-- creates the webapps directory for .war expansion -->
          <web-app-deploy path="webapps"
                          expand-preserve-fileset="WEB-INF/work/**"
                          multiversion-routing="${webapp_multiversion_routing}"
                          path-suffix="${elastic_webapp?resin.id:''}"/>
        </host-default>
    
        <!-- auto virtual host deployment in hosts/foo.example.com/webapps -->
        <host-deploy path="hosts">
          <host-default>
            <resin:import path="host.xml" optional="true"/>
          </host-default>
        </host-deploy>
    
        <!-- the default host, matching any host name -->
        <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="webapps/demo"/>
        </host>
    
     </cluster>
    
    
    

    多个域名,虚拟主机(virtual host)

    <cluster id="app">
        <!-- define the servers in the cluster -->
        <server-multi id-prefix="app-" address-list="${app_servers}" port="6801"/>
        <host-default>
          <!-- creates the webapps directory for .war expansion -->
          <web-app-deploy path="webapps"
                          expand-preserve-fileset="WEB-INF/work/**"
                          multiversion-routing="${webapp_multiversion_routing}"
                          path-suffix="${elastic_webapp?resin.id:''}"/>
        </host-default>
    
        <!-- auto virtual host deployment in hosts/foo.example.com/webapps -->
        <host-deploy path="hosts">
          <host-default>
            <resin:import path="host.xml" optional="true"/>
          </host-default>
        </host-deploy>
    
        <!--每个host id下也可以包含多个web-app,参考第一种的配置方法-->
        <host id="www.test1.com" root-directory=".">
          <web-app id="/" root-directory="webapps/test1/ROOT"/>
        </host>
    
        <host id="www.test2.com" root-directory=".">
          <web-app id="/" root-directory="webapps/test2/ROOT"/>
        </host>
    
     </cluster>
    

    resin.xml举例

    <!--
       - Resin 4.0 configuration file.
      -->
    <resin xmlns="http://caucho.com/ns/resin"
           xmlns:resin="urn:java:com.caucho.resin">
    
      <!-- property-based Resin configuration -->
      <resin:properties path="${__DIR__}/resin.properties" optional="true"/>
    
      <resin:if test="${properties_import_url}">
         <resin:properties path="${properties_import_url}"
                        optional="true" recover="true"/>
      </resin:if>
    
    
      <!-- Logging configuration for the JDK logging API -->
      <log-handler name="" level="all" path="stdout:"
                   timestamp="[%y-%m-%d %H:%M:%S.%s]"
                   format=" {${thread}} ${log.message}"/>
                   
      <!-- 
         - Alternative pseudo-TTCC log format
         -
         - <log-handler name="" level="all" path="stdout:"
         -           timestamp="%y-%m-%d %H:%M:%S.%s"
         -           format=" [${thread}] ${log.level} ${log.shortName} - ${log.message}"/>
        -->
       
      <!--
         - level='info' for production
         - 'fine' or 'finer' for development and troubleshooting
        -->
      <logger name="" level="${log_level?:'info'}"/>
    
      <logger name="com.caucho.java" level="config"/>
      <logger name="com.caucho.loader" level="config"/>
    
      <!--
         - Default configuration applied to all clusters, including
         - HTTP, HTTPS, and /resin-admin configuration.
        -->
      <resin:import path="${__DIR__}/cluster-default.xml"/>
      
      <!--
         - Remote management requires at least one enabled admin user.
        -->
      <resin:AdminAuthenticator>
        <user name="${admin_user}" password="${admin_password}"/>
        
        <resin:import path="${__DIR__}/admin-users.xml" optional="true"/>
      </resin:AdminAuthenticator>
    
      <!--
         - For clustered systems, create a password in as cluster_system_key
        -->
      <cluster-system-key>${cluster_system_key}</cluster-system-key>
    
      <!--
         - For production sites, change dependency-check-interval to something
         - like 600s, so it only checks for updates every 10 minutes.
        -->
      <dependency-check-interval>${dependency_check_interval?:'2s'}</dependency-check-interval>
    
      <!-- For resin.properties dynamic cluster joining -->
      <home-cluster>${home_cluster}</home-cluster>
      <home-server>${home_server}</home-server>
      <elastic-server>${elastic_server}</elastic-server>
      <elastic-dns>${elastic_dns}</elastic-dns>
    
      <!--
         - Configures the main application cluster.  Load-balancing configurations
         - will also have a web cluster.
        -->
      <cluster id="app">
        <!-- define the servers in the cluster -->
        <!-- <server-multi id-prefix="app-" address-list="${app_servers}" port="6800"/> -->
        <server id="k12yuwen" address="127.0.0.1" port="6801" > 
            <watchdog-port>6601</watchdog-port> 
            <http address="*" port="31001"/> 
        </server>
    
        <host-default>
          <!-- creates the webapps directory for .war expansion -->
          <web-app-deploy path="webapps"
                          expand-preserve-fileset="WEB-INF/work/**"
                          multiversion-routing="${webapp_multiversion_routing}"
                          path-suffix="${elastic_webapp?resin.id:''}"/>
        </host-default>
    
        <!-- auto virtual host deployment in hosts/foo.example.com/webapps -->
        <host-deploy path="hosts">
          <host-default>
            <resin:import path="host.xml" optional="true"/>
          </host-default>
        </host-deploy>
    
        <host id="" root-directory=".">  
          <web-app id="/k12yuwen" root-directory="webapps/k12yuwen-base">
            <form-parameter-max>100</form-parameter-max>
            <stderr-log path="${resin.root}/logs/k12yuwen/stderr.log" timestamp="[%Y-%m-%d %H:%M:%S]" rollover-period="1D"/>  
            <stdout-log path="${resin.root}/logs/k12yuwen/stdout.log" timestamp="[%Y-%m-%d %H:%M:%S]" rollover-period="1D"/>  
          </web-app>
          <web-app id="/k12yuwen-ocr" root-directory="webapps/k12yuwen-ocr">
            <form-parameter-max>100</form-parameter-max>
            <stderr-log path="${resin.root}/logs/k12yuwen-ocr/stderr.log" timestamp="[%Y-%m-%d %H:%M:%S]" rollover-period="1D"/>  
            <stdout-log path="${resin.root}/logs/k12yuwen-ocr/stdout.log" timestamp="[%Y-%m-%d %H:%M:%S]" rollover-period="1D"/>  
          </web-app>
        </host>
      </cluster>
    
    
    </resin>
    
    

    resin.properties

    web_admin_enable : false  
    session_store : false  
    resin_doc : false  
    dev_mode:false
    # 集群端口
    app.http: 8080
    

    相关文章

      网友评论

          本文标题:resin4.0配置运行总结

          本文链接:https://www.haomeiwen.com/subject/etgrfxtx.html