准备
 1、域名
 2、注册开发者账号
 3、开发者后台配置服务器信息  
配置服务
搭建HTTP服务
安装NodeJS和NPM
执行下面的命令安装:
1  | curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -  | 
编写 HTTP Server 源码
先创建一个工作目录
1  | root@172.17.0.9:~  | 
然后进入这个目录
1  | root@172.17.0.9:~  | 
创建package.json文件  
1  | root@172.17.0.9:/data/release/weapp  | 
拷贝下面的内容进去
1  | {  | 
接下来创建app.js文件,拷贝下面内容  
1  | // 引用 express 来支持 HTTP Server 的实现  | 
这里调用了Express.js监听8765端口。  
运行HTTP服务
这里我们用pm2来守护HTTP服务,首先安装pm2
1  | root@172.17.0.9:/data/release/weapp  | 
上一步配置HTTP服务的时候,用到了Express.js,我们要安装相应的依赖  
1  | root@172.17.0.9:/data/release/weapp  | 
然后用pm2来启动HTTP服务
1  | root@172.17.0.9:/data/release/weapp  | 
查看当前服务信息可通过
1  | root@172.17.0.9:/data/release/weapp  | 
搭建HTTPS服务
安装Nginx
可以直接通过yum来安装
1  | root@172.17.0.9:/data/release/weapp  | 
如果这里报错没有nginx包,需要新建配置文件
1  | vim /etc/yum.repos.d/nginx.repo  | 
将下面的内容粘贴到配置文件中
1  | [nginx]  | 
然后再执行第一步的安装命令即可。
配置HTTPS反向代理
首先配置nginx的配置文件
1  | root@172.17.0.9:/etc/nginx/conf.d  | 
把下面的内容拷进去
1  | server {  | 
然后将再腾讯云申请的免费SSL证书上传到/etc/nginx目录下  
1  | LeonLeiMBP15-110:gaoshilei$ scp -p /Users/gaoshilei/Downloads/www/Nginx/1_www.leonlei.top_bundle.crt root@115.159.87.164:/etc/nginx/1_www.leonlei.top_bundle.crt  | 
然后重启nginx
1  | root@172.17.0.9:/etc/nginx  | 
配置小程序会话
由于小程序不支持cookies和浏览器的缓存机制,需要创建独立的会话层,这里我们用另外一台服务器用来做会话
安装MongoDB
1  | [root@VM_0_13_centos ~]# yum install mongodb-server mongodb -y  | 
安装完成之后查看是否安装成功
1  | [root@VM_0_13_centos ~]# mongod --version  | 
启动MongoDB
创建数据储存和日志的储存目录
1  | [root@VM_0_13_centos ~]# mkdir -p /data/mongodb  | 
然后使用命令启动MongoDB
1  | [root@VM_0_13_centos ~]# mongod --fork --dbpath /data/mongodb --logpath /data/logs/mongodb/weapp.log  | 
使用命令查看是否启动成功
1  | [root@VM_0_13_centos ~]# netstat -ltp | grep 27017  | 
添加 MongoDB 用户
登录数据库
1  | [root@VM_0_13_centos ~]# mongo  | 
然后创建一个用户
1  | > use weapp  | 
安装Node模块
实现小程序的会话功能,需要安装 connect-mongo 和 wafer-node-session,
1  | [root@VM_0_13_centos ~]# cd /data/release/weapp  | 
实现小程序会话
在目录/data/release/weapp中新建文件config.js,然后将下面的代码拷入(注意appID和appSecret)
1  | module.exports = {  | 
然后修改app.js,添加会话逻辑  
1  | // 引用 express 来支持 HTTP Server 的实现  | 
添加完成重启服务
1  | root@172.17.0.9:/data/release/weapp  | 
WebSocket 服务
安装Node模块
小程序使用ws模块与服务器实现WebSocket通信,所以先安装node依赖  
1  | root@172.17.0.9:/data/release/weapp  | 
实现WebSocket服务
创建websocket.js,写入一下内容  
1  | // 引入 ws 支持 WebSocket 的实现  | 
修改app.js调用WebSocket服务 
1  | // HTTP 模块同时支持 Express 和 WebSocket  | 
完成之后用`pm2重启服务。
更新Nginx代理
需要向配置文件中添加WebSocket支持,修改之前配置好的/etc/nginx/conf.d/ssl.conf  
1  | # WebSocket 配置  | 
配置完成重启nginx
1  | root@172.17.0.9:/etc/nginx/conf.d  |