1. 程式人生 > >小程式server- 搭建HTTPS server

小程式server- 搭建HTTPS server

一.使用 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