2

一.使用 Node 和 Express 搭建一个 HTTP 服务器

1.在app.js修改小程序通信域名

App({
    config: {
        host: '' // 这个地方填写你的域名
    },
    onLaunch () {
        console.log('App.onLaunch()');
    }
});

2.安装 NodeJS 和 NPM

yum install nodejs npm -y
node -v

3.编写HTTP服务源码

touch package.json
#文件内容
{
    "name": "weapp",
    "version": "1.0.0"
}
touch 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}`);

4.运行 HTTP 服务

安装 PM2

npm install pm2 --global

注:PM 仓库在国内访问速度可能不太理想,如果实在太慢可以尝试使用 CNPM 的 Registry 进行安装:npm install pm2 -g --registry=https://r.cnpmjs.org/

安装 Express

npm install express --save

服务管理

启动服务
pm2 start app.js
#查看服务输出的日志
pm2 logs
#重启服务
pm2 restart app

二.利用nginx和SSL证书搭建HTTPS服务

1.安装与启动

#安装
yum install nginx -y
#启动
nginx

2.配置HTTPS

外网用户访问服务器的 Web 服务由 Nginx 提供,Nginx 需要配置反向代理才能使得 Web 服务转发到本地的 Node 服务。
上传证书

nginx

#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重新加载配置文件
nginx -s reload

lushan
20 声望0 粉丝

CS本科