centos7.2 nodejs npm
搭建 HTTP 服务
任务时间:15min ~ 30min
下面的步骤,将带大家在服务器上使用 Node 和 Express 搭建一个 HTTP 服务器
安装 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,添加我们服务器包的名称和版本号,可参考下面的示例。
示例代码:/data/release/weapp/package.json
{
"name": "weapp",
"version": "1.0.0"
}
完成后,使用 Ctrl + S 保存文件
添加 Server 源码
在工作目录创建 app.js,使用 Express.js 来监听 8765 端口[?],可参考下面的示例代码。
示例代码:/data/release/weapp/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
在开始之前,我们先来安装 [PM2]
npm install pm2 --globalPM2 安装时间可能稍长,请耐心等候 [?]
安装 Express
我们的服务器源码里使用到了 Express 模块,下面的命令使用 NPM 来安装 Express
cd /data/release/weapp npm install express --save启动服务
安装完成后,使用 PM2 来启动 HTTP 服务
cd /data/release/weapp 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
在 CentOS 上,可直接使用
yum来安装 Nginxyum install nginx -y安装完成后,使用
nginx命令启动 Nginx:nginx此时,访问 http://<您的域名> 可以看到 Nginx 的测试页面 [?]
如果无法访问,请重试用
nginx -s reload命令重启 Nginx配置 HTTPS 反向代理
外网用户访问服务器的 Web 服务由 Nginx 提供,Nginx 需要配置反向代理才能使得 Web 服务转发到本地的 Node 服务。
先将之前下载的 SSL 证书(解压后 Nginx 目录分别以 crt 和 key 作为后缀的文件)通过
拖动到左侧文件浏览器/etc/nginx目录的方式来上传文件到服务器上如何上传 SSL 证书到 /etc/nginx 目录
Nginx 配置目录在 /etc/nginx/conf.d,我们在该目录创建 ssl.conf
示例代码:/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 是否成功启动
浙公网安备 33010602011771号