node作为后端配置https的过程记录
需要准备的东西
- 线上服务器
- 域名
- ssl证书
申请ssl证书
因为是个人项目所以我使用的是阿里云提供的免费ssl证书,如果是企业项目,还是应该购买付费版本的证书。
在购买成功之后可以前往控制台进行证书的签发申请,需要填写联系方式和详细域名的因为购买的只支持单个域名,所以不能使用通配符。
在申请提交后没有什么问题的话一般十分钟左右就可以完成签发。
配置证书
将签发的证书下载到服务器(可以先下载到本地解压后再上传至服务器)。
我个人习惯将证书放到了项目bin
目录下,一共是两个文件(.key
和.pem
)。
接下来修改后端www文件代码(位于项目/bin
文件夹下)。
需要添加的代码如下:
var fs = require('fs'); // 文件系统模块
let https = require("https"); // https模块
const httpsOption = {
key : fs.readFileSync(__dirname + "/51wdy.key"), // 后面的半段改为自己的证书位置
cert: fs.readFileSync(__dirname + "/51wdy.pem")
}
接下来有两种情况:一种是http和https都要使用,还有一种是只要使用https的情况。
第一种
还是/bin/www
文件,添加如下代码:
var httpsServer = https.createServer(httpsOption, app) // 创建https服务
httpsServer.listen(443); // 这里的443是默认的https端口,也可以改成自己想要的,但注意不要和http端口共用
第二种
需要先注释掉原先的
var server = http.createServer(app);
然后添加
var server = https.createServer(httpsOption, app);
到现在https的配置就完成了,可以使用运行测试一下,应该是没有什么问题的,有个坑就是文件名为xx.xx.xx.key的时候好像会报错,改了好几次引入方式之后还是成功解决了。
使用pm2持久化服务
PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
npm install pm2 -g
# 安装完成后可以通过 pm2 -v查看是否安装成功
然后到项目根目录运行pm2 start ./bin/www --watch --name <appName>
。
pm2 基本操作命令
pm2 list
:可以查看当前所有项目的运行状态。pm2 start
:运行一个node程序,--watch
监听项目文件变化,自动重启,--name
给项目具体的名字。pm2 stop
:停止一个项目的运行。pm2 logs
:查看项目运行日志。pm2 delete
:从列表中移除项目。pm2 show <id|name>
:查看一个项目的详细情况。