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
2. Server 监控端口,默认6800
3. 应用的HTTP端口,默认8080
修改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添加:
根据实际环境确定: