~~Title:Cobub Toaster 服务器安装指南 - 开源移动应用运营平台 - 移动统计、移动推送解决方案 - Cobub 移动开发者中心~~ {{description>查看所有应用统计分析概况、今日昨日应用总体概况和某个时间段中用户访问趋势,查看Cobub Razor新闻}} {{keywords>Cobub Toaster,开源移动应用分析,移动分析,移动应用分析,安装指南}} ====== 推送服务器安装指南 ====== linux 内核参数设置(做测试不需要设置, 只在正式环境中设置) 修改/etc/sysctl.conf, 加入以下几行: fs.file-max = 600000 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.ip_local_port_range = 1024 61000 net.ipv4.tcp_rmem = 512 32768 262142 net.ipv4.tcp_wmem = 1024 32768 262142 net.core.netdev_max_backlog = 8096 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 2097152 net.core.wmem_max = 2097152 net.ipv4.tcp_syncookies = 1 然后执行”sysctl -p”命令,需要root权限。 需要注意的是fs.file-max,这个是全局范围内可以打开的文件句柄,视对长连接数量的需求以及服务器内存的大小而决定,样例这里是60w,通常要比维持的长连接数量要多一些,比如需要维持50w的长连接,那么这个数量最好设置为60w。 修改/etc/security/limits.conf,在最后加入: USERNAME - nofile 600000 第一参数USERNAME改为你的用户名,600000与上面的fs.file-max设为相同的值。之后重新远程登录Linux或者重启,重启或者重新登录之后输入命令“ulimit -n”,如果显示为600000则表示设置生效。 如果没有设置这些参数, 当长连接超过一定数量时, 会抛出错误 ulimit: open files: cannot modify limit: Operation not permitted 或者 Too many open files in system ====== 安装 Cobub Toaster ====== 将 Cobub Toaster 的压缩包解压到任意目录,建议解压到 /usr/local/ 或 /opt/ 目录下 然后修改配置文件 toaster.conf,重点解释几个值 [base] # userMaxCount: 这个参数比较关键, 这是允许最大的链接数量, 如果超过这个数量, 服务器会返回"5000 server is busy" 错误给客户端, 这个值不能比上面设置的fs.file-max大。 userMaxCount 500000 # bind: 表示推送服务tcp监听的网卡:端口, 用","分隔多个监听, 通常场景下只需要监听一个端口就足够了 tcp.bind 0.0.0.0:9000,0.0.0.0:9001 [web] # post body 的大小限制, 默认为10M, 要表示为1g可以写成"1gb" postlimit 10mb # bind: 这个参数表示web service监听的网卡:端口, 注意, 这里的localhost应该要替换为自己的内网地址, 绑定内网的网卡. 如一般是192.168.xxx.xxx(不建议把web service暴露到公网)。建议使用Nginx作为反向代理,否则可能发生乱码问题。 bind 127.0.0.1:8888 [message] feedbackTimeout 20m # 最大的消息过期时间为720小时(30天) maxMsgExpire 720h [connection] #最小心跳包间隔时间, 1分钟 min_heartbeart_timeout 1m #最大心跳包间隔时间, 20分钟 max_heartbeat_timeout 20m #在心跳包间隔+heartbeatDelay的时间内如果没有接收到客户端发来的心跳包, 那么server #会认为这是死链接, 会close掉这个链接, 此处设为30s heartbeatDelay 30s [cobub_verify] #这两个key来自于Cobub 用户中心 user_key 3e5f68afbb0f94xxx09bfc1730 user_secret 2d43d5dcdcb2yyyy3269dfb56b4b17 Redis 安装&配置 tar zxvf redis-2.6.16.tar.gz cd redis-2.6.16 make sudo make install cd ~ mkdir redis-6379 cd redis-6379 nohup redis-server & ====== 启动推送服务器PNS ====== 注意启动之前请确认redis已经在运行。 nohup ./toaster -log_dir="./log" & ====== 查看推送服务器PNS版本 ====== ./toaster -version