准备域名和证书
任务时间:20min ~ 40min
小程序后台服务需要通过 HTTPS 访问,在实验开始之前,我们要准备域名和 SSL 证书。
域名注册
如果您还没有域名,可以在腾讯云上选购,过程可以参考下面的视频:
- 视频 - 在腾讯云上购买域名 【腾讯云限时领3600优惠券】
域名解析
域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为:
<您的 CVM IP 地址>
在腾讯云购买的域名,可以到控制台添加解析记录,过程可参考下面的视频:
- 视频 - 如何在腾讯云上解析域名
域名设置解析后需要过一段时间才会生效,通过 ping
命令检查域名是否生效 [?],如:
ping www.yourmpdomain.com
如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。
注意替换下面命令中的
www.yourmpdomain.com
为您自己的注册的域名
申请 SSL 证书
腾讯云提供了 SSL 证书的免费申请,申请方式可参考下面视频:
- 视频 - 在腾讯云上申请 SSL 证书
申请提交后,审批结果会以短信的形式通知。审批通过后,可以到 SSL 控制台下载您的证书文件,可参考下面的视频:
- 视频 - 在腾讯云上下载 SSL 证书
搭建小程序开发环境
任务时间:15min ~ 30min
在开始搭建我们的小程序服务器之前,需要先完成客户端小程序开发环境的搭建。
注册开发者账号
如果你还不是小程序开发者,请先在微信公众平台并注册:
具体注册流程可参考如下视频:
- 视频 - 注册开发者账号
若您已注册,请点击下一步。
配置小程序服务器信息
登录微信公众平台后,依次进入 设置
- 开发设置
- 服务器域名
- 修改
。
扫码完成身份校验后,request 合法域名和 socket 合法域名均填写在上一步准备好的域名地址。
配置完成后,点击 保存并提交
。您可以点击如下视频查看如何进行配置:
- 视频 - 配置小程序服务器信息
运行配套小程序代码
要运行本实验配套的小程序代码,请下载下列资源:
源码下载后,请解压到本地工作目录。
开发工具下载后,请安装并启动,然后用微信扫码登录。
登录后,选择 本地小程序项目
- 添加项目
,使用以下配置:
- AppID:填写小程序的 AppID,请登录公众平台后在
设置
-开发设置
-开发者 ID
中查看 - 项目名称:填写任意您喜欢的名称
- 项目目录:选择刚才解压的配套源码目录(目录包含
app.js
)
填写完成后,点击 添加项目
。具体操作可查看如下视频:
- 视频 - 运行配套小程序代码
设置实验域名
在开发工具的 编辑
面板中,选中 app.js
进行编辑,需要修改小程序通信域名[?],请参考下面的配置:
App({
config: {
host: 'www.yourdomain.com' // 这个地方填写你的域名
},
onLaunch () {
console.log('App.onLaunch()');
}
});
当然,这步操作也录制了对应的视频:
- 视频 - 设置实验域名
实验配套源码所用通信域名都会使用该设置,为了您顺利进行实验,请把域名修改为之前步骤准备的域名
搭建 HTTP 服务
任务时间:15min ~ 30min
下面的步骤,将带大家在服务器上使用 Node 和 Express 搭建一个 HTTP 服务器
安装 NodeJS
使用下面的命令安装 NodeJS
sudo apt-get update
sudo wget https://mc.qcloudimg.com/static/archive/262420521a966befe17dfa0070ddb272/node-v6.11.0.tar.gz
sudo tar xvf node-v6.11.0.tar.gz
cd node-v6.11.0
sudo ./configure
sudo make
sudo make install
sudo cp /usr/local/bin/node /usr/sbin/
安装完成后,使用下面的命令测试安装结果
node -v
编写 HTTP Server 源码
使用下面的命令在服务器创建一个工作目录:
sudo mkdir -p /data/release/webapp
进入此工作目录
cd /data/release/webapp
在工作目录创建 package.json 文件,并修改文件的访问权限。
sudo touch package.json
sudo chmod a+r+w package.json
修改 package.json 添加我们服务器包的名称和版本号,可参考下面的示例。
示例代码:/data/release/webapp/package.json
{
"name": "webapp",
"version": "1.0.0"
}
完成后,使用 Ctrl + S
保存文件
在工作目录创建 app.js
cd /data/release/webapp
sudo touch app.js
sudo chmod a+rw app.js
修改 app.js 文件,使用 Express.js 来监听 8765
端口[?],app.js文件可参考下面的示例代码。
示例代码:/data/release/webapp/app.js
// 引用 express 来支持 HTTP Server 的实现
const express = require('express');
// 创建一个 express 实例
const app = express();
// 实现唯一的一个中间件,对于所有请求,都输出 "Response from express"
app.use((request, response, next) => {
response.write('Response from express');
response.end();
});
// 监听端口,等待连接
const port = 8765;
app.listen(port);
// 输出服务器启动日志
console.log(`Server listening at http://127.0.0.1:${port}`);
本实验会以 8765 端口的打开作为实验步骤完成的依据,为了后面的实验步骤顺利进行,请不要使用其它端口号
运行 HTTP 服务
在开始之前,我们先来安装 [PM2]
sudo apt-get install npm
sudo npm install -g pm2
PM2 安装时间可能稍长,请耐心等候 [?]
我们的服务器源码里使用到了 Express 模块,下面的命令使用 NPM 来安装 Express
cd /data/release/webapp
sudo npm install express --save
安装完成后,使用 PM2 来启动 HTTP 服务
cd /data/release/webapp
pm2 start app.js
现在,您的 HTTP 服务已经在 http://<您的 CVM IP 地址>:8765 运行
要查看服务输出的日志,可以使用下面的命令:
pm2 logs
如果要重启服务,可以使用下面的命令:
pm2 restart app
我们使用 PM2 来进行 Node 进程的运行、监控和管理
NPM 仓库在国内访问速度可能不太理想,如果实在太慢可以尝试使用 CNPM 的 Registry 进行安装:
npm install pm2 -g --registry=https://r.cnpmjs.org/
搭建 HTTPS 服务
任务时间:15min ~ 30min
微信小程序要求和服务器的通信都通过 HTTPS 进行
安装 Nginx
在 Ubuntu 上,可直接使用 apt-get
来安装 Nginx
sudo apt-get install nginx -y
安装完成后,使用 nginx
命令启动 Nginx:
sudo /etc/init.d/nginx start
此时访问 http://<您的域名> 可以看到 Nginx 测试页面 [?]
如果你的机器同时安装了其他软件占用80端口,那上面的访问方式就不能使用了,而且 Nginx 都可能启动不了,你需要关闭该软件再重新启动 Nginx。
配置 HTTPS 反向代理
修改 /etc/nginx 目录的读写权限
sudo chmod a+rw /etc/nginx
将之前下载的 SSL 证书(解压后 Nginx 目录分别以 crt 和 key 作为后缀的文件)通过拖动到左侧文件浏览器 /etc/nginx 目录
的方式来上传文件到服务器上。
如何上传 SSL 证书到 /etc/nginx 目录