微信小程序项目如果要发布,请求数据需要https才可以,我这里教程就先写配置https吧,更多的配置有空再补)
需要准备:
- 云服务器(我装的CentOS,一开始我用的Ubuntu Server,因为没有界面,不方便我后续的操作,所以更换成Centos,啥时候有空再写一个Ubuntu版的,其实思路差不多,指令有所不同而已)
- 域名
- 证书
- Xshell工具(用来远程连接你的云服务器)
- Xftp工具(用来上传文件到你的云服务器)
默认以上都准备好了,下面进入正题
搭建步骤
安装NodeJS和NPM
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
yum install nodejs -y
安装完成后,使用下面的命令测试安装结果
node -v
编辑HTTP Server代码
创建工作目录
mkdir -p /data/release/weapp
进入目录
cd /data/release/weapp
创建 package.json
使用npm来创建,或者用常规创建文件的方式
npm init
用vim打开并编写该文件
{
"name": "weapp",
"version": "1.0.0"
}
保存退出
添加 Server 源码
在该工作目录创建app.js文件
vim编写app.js文件
(这里使用Express.js来监听8765端口)
// 引用 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}`);
运行HTTP服务
安装 PM2
npm install pm2 --global
安装Express
在/data/release/weapp目录下局部安装
cd /data/release/weapp
npm install express --save
启动服务
cd /data/release/weapp
pm2 start app.js
然后你可以在浏览器输:http://你的ip:8765试一试
搭建HTTPS服务
安装Nginx
安装
yum install nginx -y
启动
nginx
配置HTTPS反向代理
上传SSL证书
使用Xftp工具将你申请的证书的nginx目录下的crt和key两个文件上传到云服务器的/etc/nginx目录下
编辑配置文件
先自己在/etc/nginx/conf.d目录下创建ssl.conf文件
然后用vim来编辑这个文件(注意哦,conf文件千万别用笔记本啥的来打开,会自动添加编码在前面,运行不成功的)
server {
listen 443;
server_name www.example.com; # 改为绑定证书的域名
# ssl 配置
ssl on;
ssl_certificate 1_www.example.com_bundle.crt; # 改为自己申请得到的 crt 文件的名称
ssl_certificate_key 2_www.example.com.key; # 改为自己申请得到的 key 文件的名称
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8765;
}
}
重新加载配置
nginx -s reload
好了,你可以在浏览器输入https://你的域名 来进行测试
现在你的小程序可以使用https啦