Open Source Resin 4.0.27配置简析Resin4.0.7 --- Resin4.0.27
Resin4在4.0.24开始配置文件格式有较大变化。拆分为 app-default.xml web应用配置 cluster-default.xml 集群配置,在microblog中,一台服务是一个cluster。 resin.xml resin.properties 会被修改的变量 安装cd resin-4.0.27 ./configure --prefix=`pwd`; make; make install 避免出现错误: Unable to find native library 'resin_os' for com.caucho.loader.ClassEntry. Resin expects to find this library in: (Unix) /disk1/microblog/resin-4.0.27/libexec64/libresin_os.so OpenSource Resin4 不支持LoadBalance、Health删除/注释 相应配置 health: <!-- - health configuration --> <resin:import path="${__DIR__}/health.xml"/> 删除 <cluster id="web"> <!-- define the servers in the cluster --> <server-multi id-prefix="web-" address-list="${web_servers}" port="6810"/> loadbalance: <host id="" root-directory="web"> <web-app id=""> <resin:LoadBalance regexp="" cluster="app"/> </web-app> </host> </cluster> 端口Resin 运行起来后,一般有这么几个端口 1. WatchDog 的端口,默认6600 修改resin.properties http : 8080 ---> 30080 添加 watchdog_port: 6606 添加 server_listen_port: 6866 修改resin.xml <cluster id="app"> <!-- define the servers in the cluster --> <server-multi id-prefix="app-" address-list="${app_servers}" port="${server_listen_port?:6800}"> <watchdog-port>${watchdog_port?:6600}</watchdog-port> </server-multi> admin/doc/deploy禁用resin的管理界面 修改resin.properties: web_admin_enable : false session_store : false (每个服务器是一个集群,不需要考虑session 持久化) resin_doc : false dev_mode:false 在resin.properties添加: form_parameter_max:100 #hash dos protection
修改resin.xml <web-app id="/" root-directory="webapps/microblog" redeploy-mode="manual"> <form-parameter-max>${form_parameter_max?:100}</form-parameter-max> </web-app> form-parameter-max 用来限制每次post submit的参数个数,避免hash collision dos 修改cluster-default.xml 注释: <!-- <port-default> <port-thread-max>${port_thread_max}</port-thread-max> <accept-thread-min>${accept_thread_min}</accept-thread-min> <accept-thread-max>${accept_thread_max}</accept-thread-max> <tcp-cork>${tcp_cork}</tcp-cork> </port-default> --> port_thread_max: 每个端口最多可以有的活跃线程数,避免系统负载压力过大。 这些参数在4.0.7中都没有,不能预估,先忽略了。。。! 这种配置在Resin 代码中对应的变量名为 portThreadMax acceptThreadMin acceptThreadMax,固定格式 日志4.0.27 log与4.0.7 log 有些不同 <stdout-log path="log/stdout.log" rollover-period="1D" timestamp="[%H:%M:%S.%s] "/> 只会输出系统中System.out.println()的内容。 <log-handler name="" level="all" path="log/microblog.log" timestamp="[%y-%m-%d %H:%M:%S.%s]" rollover-period="1D"/> 输出microblog中的内容 修改resin.xml: <log-handler name="" level="all" path="log/microblog.log" timestamp="[%y-%m-%d %H:%M:%S.%s]" rollover-period="1D"/> <stdout-log path="log/stdout.log" rollover-period="1D" timestamp="[%H:%M:%S.%s] "/> <stderr-log path="log/stderr.log" rollover-period="1D" timestamp="[%H:%M:%S.%s] "/> 日志每天自动备份 可以通过stdout.out 来查看确认系统中是否有System.out.println()的调用 启动JVM参数修改resin.properties添加: 根据实际环境确定: jvm_args : -Xmx12g -Xms12g -XX:PermSize=256m -XX:MaxPermSize=1g -verbose:gc -verbose:jni -server -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+UseParallelOldGC -Xloggc:log/gc.log -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=12346 |
|