安装NodeJS 和 NPM
使用下面的命令安装 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
在刚才创建的工作目录创建 package.json,添加我们服务器包的名称和版本号,可参考下面的示例。
{
"name": "weapp",
"version": "1.0.0"
}
添加 Server 源码
在工作目录创建 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
在开始之前,我们先来安装 PM2
npm install pm2 --global
PM2 安装时间可能稍长,请耐心等候
NPM 仓库在国内访问速度可能不太理想,如果实在太慢可以尝试使用 CNPM 的 Registry 进行安装:
npm install pm2 -g --registry=[https://r.cnpmjs.org/](https://r.cnpmjs.org/ "null")
安装 Express
我们的服务器源码里使用到了 Express 模块,下面的命令使用 NPM 来安装 Express
cd /data/release/weapp
npm install express --
启动服务
安装完成后,使用 PM2 来启动 HTTP 服务
cd /data/release/weapp
pm2 start app.js
现在,您的 HTTP 服务已经在 http://139.199.220.199:8765运行
要查看服务输出的日志,可以使用下面的命令:
pm2 logs
如果要重启服务,可以使用下面的命令:
pm2 restart app
搭建HTTPS服务
安装Nginx
在 CentOS 上,可直接使用 yum 来安装 Nginx
yum install nginx -y
安装完成后,使用 nginx 命令启动 Nginx:
nginx
此时,访问 http://139.199.220.168 可以看到 Nginx 的测试页面
配置HTTPS反向代理
外网用户访问服务器的 Web 服务由 Nginx 提供,Nginx 需要配置反向代理才能使得 Web 服务转发到本地的 Node 服务。
先将之前下载的 SSL 证书(解压后 Nginx 目录分别以 crt 和 key 作为后缀的文件)通过拖动到左侧文件浏览器/etc/nginx目录
的方式来上传文件到服务器上
Nginx 配置目录在 /etc/nginx/conf.d,我们在该目录创建 ssl.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;
}
}
按 Ctrl + S 保存配置文件,让 Nginx 重新加载配置使其生效:
nginx -s reload
在浏览器通过 https 的方式访问你解析的域名来测试 HTTPS 是否成功启动
在小程序中测试HTTPS访问
打开配套的小程序,点击 实验一:HTTPS,点击 发送请求 来测试访问结果。
如果服务器响应成功,请点击下一步。
网友评论