私有部署
私有部署将脱离众触平台,自行运维服务器、数据库和图片视频等资源,需要具有一定的运维能力以保证服务的稳定和数据的安全。
下载部署包
下载部署包(Linux版,Windows版)到指定目录后解压,你将得到如下几个文件:
server-win.exe / server-linux:Windows版或Linux版基座程序
download.bat / download.sh:Windows版或Linux版资源下载程序
setting.json:配置文件
导出数据
在众触平台指定应用的控制面板上点击【导出】按钮,可以导出平台元数据(metaData.json)和业务数据(bizData.json),把他们和基座程序放在一起。如果仅是前端应用不涉及业务数据,可以忽略bizData.json。
配置文件
编辑setting.json文件
{
"IP": "",
"PORT": 80,
"NOAUTH": false,
"SECRETS_ZT": "",
"SECRETS_ZR": "",
"CDN_URL": "static",
"OSS_REGION": "",
"OSS_ENDPOINT": "",
"OSS_BUCKET": "",
"OSS_PATH": "",
"OSS_KEY": "",
"OSS_SECRET": "",
"DB_IP": "",
"DB_PORT": 27017,
"DB_NAME": "",
"DB_USER": "",
"DB_PASS": "",
"SMS_KEY": "",
"SMS_SECRET": ""
}
IP通常不填,表示响应来自所有IP的请求。如果安装有代理服务器,则可以填写代理服务器的IP,表示只响应此IP的请求而忽略其它请求。
服务器端口PORT默认是80
。如果一台服务器想跑多个应用可以改成其它端口。
NOAUTH是为了刚部署时绕开后端认证用的,如果碰到认证问题可临时设为true
,解决问题后一定记得改回false
。
SECRETS_ZT和SECRETS_ZR应该输入一些随机字符串,即使默认已经给了随机字符了,但还是应该随机插入一点字符以最大限度不让别人猜到。
SMS_**
是用来发送邮件的,如果不需要邮箱注册等服务则不用填写。
下载资源
先右键编辑download.bat:
设置应用id,即编辑应用时平台提供的子域名,在控制面板中有显示。
设置待下载资源的类型type:all
表示所有类型,用户上传类型有i
、v
、f
,即图片、视频、文件;开发者上传的类型有j
、w
、l
、p
,即图片、视频、文件、文件夹。
设置过滤日期date,表示只下载此日期(包含)以后上传的资源,all
表示所有日期。
编辑保存后双击download.bat就会自动批量下载资源了。下载完成后会生成一个OSS
文件夹,通常是把它里面的所有文件夹上传到阿里云OSS根目录或OSS_PATH指定的路径下。如果CDN_URL填的是static则无需上传,。
配置CDN/OSS
CDN_URL填https:// + CDN域名,也可以包含路径。
如果填static
表示直接使用本服务器充当静态资源服务器,而不使用OSS和CDN,此时终端用户就不能上传图片等资源,也就不需要填写下面的设置了,把上面下载的资源保留在基座程序旁边就可以了。注意,没用OSS和CDN分流静态资源将需要更大服务器带宽。
如果配置了OSS但没填写CDN_URL,则直接使用OSS而不用CDN,平台会根据OSS的配置生成CDN_URL:OSS_BUCKET + "." + OSS_ENDPOINT + "/" + OSS_PATH
建议使用阿里云OSS,因为它有图片自动裁剪功能(resize),当需要小号图片时众触平台会利用这个功能来节省流量提高速度。要求开启公共读
权限。
OSS_REGION填OSS所在的地域,比如oss-cn-hangzhou
;OSS_ENDPOINT填地域节点,比如oss-cn-hangzhou.aliyuncs.com
;OSS_BUCKET填Bucket名称,不含地域节点;OSS_PATH用来指定上传到某个路径下,比如aa/bb,通常不填,表示上传到根目录;OSS_KEY和OSS_SECRET填OSS账号信息,建议使用在RAM 访问控制创建的只有AliyunOSSFullAccess权限的用户AccessKey。
设置数据库
根据需要连接的MongoDB数据库的具体情况填DB_**
。如果需要私有部署的是个不涉及数据库的前端应用可以跳过。安装过程请参考MongoDB的官方文档。
DB_IP填数据库IP,如果用户量不是特别大可以把数据库和基座程序安装在同一台服务器,此时可以填localhost
。DB_PORT填数据库端口,默认是27017。
默认安装的MongoDB没有开启账号认证,应该先通过命令行创建用户:
mongo
use dbname
db.createUser({user:"MongoUser",pwd:"MongoPass",roles:[{role:"readWrite",db:"dbname"}]})
DB_NAME填数据库名称,比如上面的dbname,如果多个应用共用一个数据库,数据库名称就应该不同。DB_USER填数据库账号用户名,比如上面的MongoUser,DB_PASS填账号密码,比如上面的MongoPass。
服务器首次启动的时候会把业务数据bizData.json
自动导入到数据库中,并生成bizDataImported.txt
文件,表示数据已经导入过一次了。如果想再次导入业务数据(比如你从众触平台导出了新的业务数据),删除bizDataImported.txt
文件再次启动服务器就可以了。
开启https证书
开启https证书有多种方式,比如购买商业证书安装到代理服务器上。最简单的方式是使用acme自动安装免费证书到基座程序所在的./cert/node.key和./cert/node.cer,基座程序启动时会自动读取并开启https服务。
此步骤可选,无论是否安装证书都会开启http服务。
启动服务器
Windows下双击基座程序server-win.exe
就可以启动服务器,关闭弹出的命令行窗口也即停止服务。
建议使用Linux服务器,直接调用./server-linux
就可以启动服务器(如没有执行权限可通过chmod +x ./server-linux
添加)。
但建议把服务放在后台运行,以便退出终端时不影响服务运行:nohup ./server-linux &
。然后用tail -f ./nohup.out
实时监控日志。 如果要停止服务先用ps -aux | grep "server-linux"
找到进程号PID,再用kill -9 PID
来停止服务。
其它
本机部署的服务器可以直接用http://localhost
来访问(默认80端口);在云服务器上部署的还应该购买域名,添加A类型的记录指向云服务器IP,才能通过域名访问。
如果使用到了微信相关功能,要添加此台服务器的IP到微信IP白名单中,如果使用了扫码登录功能,要把服务器地址URL更改成自定义域名+/api/wx/handler;如果使用了微信支付,将使用在控制面板填的第一个域名作为支付回调域名。参考文档。
对于用户量不大的多个小应用可以共用一台服务器和数据库,把部署包复制到不同路径下,使用不同的端口就可以分别启动服务了,再安装一个Nginx作为代理来转发不同域名的请求到相应的服务上。
因为众触后台非常轻量和高性能,并发瓶颈在数据库上,对于用户量很大的应用可以考虑购买云数据库集群,一台中等的服务器足以应付很大的并发量了。
私有部署没有流量统计功能,所以没有$traffic接口。