#配置文件
TSW全局配置文件,业务逻辑挂载点,也是一个模块~。
{cwd} -- 表示当前的工作目录,对应process.cwd(){TSW} -- 对应TSW安装目录{config} -- 表示启动参数config,对应node tsw config={config}配置文件
config.js加载顺序如下
{config} -- 对应node tsw config={config},1.2.2新增$TSW_CONFIG_PATH -- 环境变量指定配置文件路径,1.2.3新增{cwd}/tsw.config.js -- 1.2.2新增/etc/tsw.config.js/usr/local/node_modules/config.js/data/release/tsw.config.js -- 1.2.4新增/data/release/node_modules/config.js{TSW}/conf/config.jsExample
const config = plug('config');
appid -- string tswjs.org颁发的appid,默认nullappkey -- string tswjs.org颁发的appkey,默认nullthis.appid = 'tsw007';
this.appkey = 'FuiFsFwe3asdF12sdwvkshk8';
devMode -- boolean 开发者模式 ,本地代码修改后可立即生效,有损性能,默认falsehttpAdminPort -- number http管理端口,只监听本地回路127.0.0.1,默认值12701reload -- curl 127.0.0.1:12701/reloadrunAtThisCpu -- array|string worker启动数量和cpu分配策略,默认值auto'auto' -- string 自动分配,核数x1[0,1] -- array[number] 手动分配,启动两个worker,分别绑定到cpu0和cpu1上workerUid -- string worker运行时用户,默认值'nobody'alphaFile -- string 指定alpha文件位置,用于固定的白名单,默认值nullalphaFileUrl -- string 指定alpha文件的网络位置,默认值nullblackIpFile -- string 指定blackIp文件位置,默认值nullblackIpFileUrl -- string 指定blackIp文件的网络位置,默认值nullcpuLimit -- number CPU使用限制,默认值85,每个worker独立生效,超过限制自动开启过载保护。cpuRecordTime -- number CPU快照持续时间,默认值5000。1.2.4新增memoryLimit -- number 内存使用限制,默认值768MB,每个worker独立生效,超过限制自动淘汰。CCIPLimit -- number CC预警阈值,取自指标AVG_TSW_IP_STD_X10,默认值200,即聚集度达到50%判定为恶意。-1 -- 表示关闭检测AVG_TSW_IP_STD_X10 -- IP访问次数加权方差,放大10倍方便观察CCIPLimitAutoBlock -- boolean CC拦截,启用自动拉黑,默认值false。1.1.3新增logger -- object 日志级别logLevel -- {'debug':10,'info':20,'warn':30,'error':40,'off':50}['info']httpProxy -- object 全局http代理设置,为fiddler设计,对在win7下开发比较有用ip -- string 默认值'127.0.0.1'port -- number 默认值8888enable -- boolean 是否启用,默认值falsetimeout -- object 全局超时控制,单位mspost -- bumber post like请求处理超时,默认值30000get -- bumber get like请求处理超时,默认值10000socket -- bumber socket超时设置,默认值30000keepAlive -- bumber keepAlive超时设置,默认值0this.timeout = {
socket: 30000,
post: 30000,
get: 10000,
keepAlive: 10000,
dns: 3000
}
beforeStartup(cpu) -- function 启动完成前的回调cpu -- number 当前工作进程对应的cpu编号ajaxDefaultOptions -- object ajax全局设置,默认值nullafterStartup(cpu) -- function 启动完成后的回调cpu -- number 当前工作进程对应的cpu编号extendMod -- object 支持重新定义TSW里部分方法的实现getUid(request) -- function 重新定义从request解析UID的实现isTST(request) -- function 重新定义TST(安全扫描器)请求httpAddress -- string http网卡,推荐'0.0.0.0'httpPort -- number http端口,默认80或者你喜欢的数字workerPortBase -- number worker起始端口,默认12801。比如worker/7对应的端口为12801+7=12808websocket场景下发送消息到指定worker里httpsAddress -- string https网卡,推荐'0.0.0.0',默认空httpsPort -- number https端口,默认空httpsOptions -- object https证书之类的,透传给Node.jspage404 -- string 404公益页面路由page419 -- string 419页面路由router -- module HTTP路由,需实现以下方法name(req) -- function 负责req.url向name映射,让url收敛find(name,req,res) -- function 负责name向module映射,返回处理模块module -- function http逻辑处理模块,module.exports需导出个函数allowArrayInUrl -- boolean url解析参数时是否输出数组默认值 -- falsefalse -- 重复元素只取第一个true -- 重复元素装在数组里allowHost -- array[string|regex|object] 对非法域名返回508,对内网IP无影响默认值 -- [],空数组表示无限制string -- 字符串类型全匹配regex -- regex类型调用regex.test(host)方法匹配object -- object类型调用object.test(host)方法匹配allowOriginHost -- array[object] 默认值 -- undefined,不配置不进行跨域检测objecthost:[string] 需要跨域检测的域名origin:[string|regex|object] 允许跨域的域名string -- 字符串类型全匹配,支持*.等通配符匹配regex -- regex类型调用regex.test(host)方法匹配object -- object类型调用object.test(host)方法匹配wsRouter -- module websocket路由,需实现以下方法name(ws) -- function 负责ws.url向name映射find(name,ws) -- function 负责name向WebSocket module映射module -- module websocket逻辑处理模块,需实现以下方法onConnection(ws) -- 连接建立的回调函数onMessage(ws,message) -- 收到消息的回调函数onClose(ws,code,reason) -- 连接关闭时的处理函数onError(ws,err) -- 连接出错时的处理函数allowWebSocketOriginHost -- array[string|regex|object] 允许websocket跨域的host,其他跨域请求返回403默认值 -- [],空数组表示允许跨域请求string -- 字符串类型全匹配regex -- regex类型调用regex.test(host)方法匹配object -- object类型调用object.test(host)方法匹配isTest -- boolean 测试环境标识 ,默认false,为true时自动发现testInfo -- object 测试环境信息name -- string 名称group -- string 分组名,测试环境会根据分组自动聚合。groupName -- string 分组名称。desc -- string 测试环境描述order -- number 用于排序owner -- string 测试环境负责人this.isTest = true;
this.testInfo = {
"name" : "神秘商店",
"group" : "TSW",
"groupName" : "TSW团队",
"desc" : "没有人能知道这里在售卖什么",
"order" : 30,
"owner" : "TSW"
};
logReportUrl -- string 染色日志上报,保持默认即可h5testSyncUrl -- string 测试环境同步,保持默认即可utilCDUrl -- string CD冷却池,保持默认即可appReportUrl -- string 指标上报,保持默认即可runtimeReportUrl -- string runtime告警,保持默认即可skyMode -- boolean 天空模式 ,私有化部署时管理端标识,默认falsethis.skyMode = true;
memcached -- object 私有化部署时memcached地址声明,默认值nullthis.memcached = {
host : '127.0.0.1:11211',
timeout : 500,
poolSize : 20,
retries : 1,
maxQueueSize : 1000
};
beforeReportLog(reportData) -- function 自定义日志上报reportData -- object 包含上报信息的对象,具体字段可打印出来观看返回值 -- boolean 返回false会中断TSW的默认上报逻辑beforeReportApp(reportData) -- function 自定义指标上报reportData -- object 包含上报信息的对象,具体字段可打印出来观看返回值 -- boolean 返回false会中断TSW的默认上报逻辑beforeRuntimeReport(reportData) -- function 自定义Runtime上报reportData -- object 包含上报信息的对象,具体字段可打印出来观看返回值 -- boolean 返回false会中断TSW的默认上报逻辑