准备
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 |