基于ubuntu服务器搭建小程序后台https服务

基于腾讯云ubuntu16.04服务器搭建小程序后台https服务

由于小程序只支持https传输,所以需要在学生机上搭建一个HTTPS服务

前期服务器准备

  • 域名注册
  • 域名解析
  • 准备ssl证书

前期小程序开发准备

  • 微信公众号平台注册开发账户
  • 在平台上配置小程序服务器信息(如合法域名的设置)

搭建https服务器

我这里使用的是nginx

  • 首先要安装nginx
    sudo apt-get install nginx -y
    然后启动后访问自己的服务器地址就可以访问到nginx欢迎页面
    sudo /etc/init.d/nginx start
  • 然后配置https的反向代理
    • 1)修改 /etc/nginx 目录的读写权限
      sudo chmod a+rw /etc/nginx
    • 将之前下载的 SSL 证书(解压后 Nginx 目录分别以 crt 和 key 作为后缀的文件)使用winscp拖动到 /etc/nginx 目录的方式来上传文件到服务器上。
    • 在 /etc/nginx/conf.d 目录创建 ssl.conf 文件
      cd /etc/nginx/conf.d
      sudo touch ssl.conf
      sudo chmod a+rw ssl.conf
      
      基于ubuntu服务器搭建小程序后台https服务
    • 在该文件里写入如下内容:
      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;#该端口为express服务启动时开启的端口
              }
          }
      

接下来就可以用nodejs搭建一个简单的HTTP服务了
(该服务应该会被定向到https上去)
服务代码如下:

// 引用 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}`);

在该服务所在文件夹下输入npm start启动服务,若启动服务时报错不成功很可能是因为没有安装nodejs或express,自行安装之后即可。
启动之后就可以在浏览器里用https://你的域名来访问啦
腾讯云开发者实验室:
https://cloud.tencent.com/developer/labs/gallery
基于ubuntu服务器搭建小程序后台https服务