IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> qq小程序部署+nginxHTTPS+gin框架HTTPS流程图解 -> 正文阅读

[系统运维]qq小程序部署+nginxHTTPS+gin框架HTTPS流程图解


与你相识


博主介绍:

– 本人是普通大学生一枚,每天钻研计算机技能,CSDN主要分享一些技术内容,因我常常去寻找资料,不经常能找到合适的,精品的,全面的内容,导致我花费了大量的时间,所以会将摸索的内容全面细致记录下来。另外,我更多关于管理,生活的思考会在简书中发布,如果你想了解我对生活有哪些反思,探索,以及对管理或为人处世经验的总结,我也欢迎你来找我。

– 目前的学习专注于Go语言,辅学算法,前端领域。也会分享一些校内课程的学习,例如数据结构,计算机组成原理等等,如果你喜欢我的风格,请关注我,我们一起成长。


Introduction

在项目中用到了小程序的部署,小程序要部署中必经的一环是需要配置https,小程序都配置https了,那么与它进行联系的其它部分也要升级为https,现在把探索的过程记录下来。

因为我的项目api用的是gin框架(go语言),所以除了qq小程序要升级https,nginx和gin也要有对应的配置。



qq小程序部署

qq小程序的部署需要经过下面几个步骤:

  • 在qq小程序网站注册自己的信息
  • 下载qq小程序开发者工具
  • 对我们的uniapp项目打包
  • 添加项目
  • 上传项目
  • 生成体验版本

注册信息

首先你需要登录这个地址,然后注册一下自己的信息,这个是你配置qq小程序的主要地方。
https://q.qq.com/#/

然后另外需要认证自己的开发者资质以及获取AppID。

下载开发者工具

通过下面的网址可以下载qq小程序开发工具:
https://q.qq.com/wiki/tools/devtool/#%E8%AF%B4%E6%98%8E

进去大概是这个样子,这个项目目录不能直接添加我们的项目目录,它需要添加打包后的目录,接下来我们就需要打包我们的项目了。

打包项目

我是用的Hbuilder来开发uniapp,而这个ide本身也具有打包功能,点击上面的发行,会看到小程序-QQ的菜单,点击之后输入我们的小程序名字和Appid即可打包。


此时在unpackage中的dist,build下就可以看到我们的mp-qq文件夹,这个就是我们要的文件夹。
同理,如果你打包微信的话,也会有mp-wx文件夹。

上传项目

然后我们打开刚才的qq小程序开发工具,把对应信息填上,把项目目录定位到mp-qq这个目录下,就会进入到这个界面。

此时你可以在这个页面对你的小程序进行调试,预览等操作,左上角也可以关闭此项目,如果都没问题了之后,就可以点击右上角的上传按钮,填写基本的信息。

生成体验版本

此时你回到我们的qq小程序网页,在版本设置中可以看到刚才我们上传的版本,点击右边的小三角可以生成体验版本(二维码),此时项目组的成员就可以通过扫描这个二维码来查看小程序的内容了。

nginx配置HTTPS

配置HTTPS都需要有域名,一般也会有相应的说明:
比如下面的阿里云说明
https://help.aliyun.com/document_detail/98728.html?spm=5176.14113079.help.dexternal.227156a7TBgKGF

域名可以和ip地址进行绑定,这个绑定关系也是可以更改的。

如果需要Https的话,需要进行证书认证,在域名那里申请证书,然后需要在相应的服务器这里(nginx)配置证书,这样qq小程序的域名和nginx才能进行通信。

小程序必须使用HTTPS/WSS发起网络请求,请求时系统会对服务器域名使用的HTTPS整数进行校验,如果校验失败,则请求不能成功发起,

而且一旦开启ssl,则全站所有的资源,包括调用别人的api,都要加上https,否则就不符合https的安全逻辑,所以如果你要调接口的话,需要把接口也添加https支持。

首先你需要下载证书

大概长这个样子,有一个key,有一个pem

把证书放到服务器中,配置nginx配置文件

upstream myserver {
    server 172.17.0.5:8000;
}

server {
    listen 80;
    listen       443 ssl;  # ssl默认使用443端口传输
    client_max_body_size 20m;
    server_name jifen.lzyjykj.com;  # 设置域名
    # 下面都是配置ssl了,也就是需要把这个加入到原来的内容中
    ssl_certificate cert/5979443_jifen.lzyjykj.com.pem;    #  设置证书
    ssl_certificate_key cert/5979443_jifen.lzyjykj.com.key;  #  设置证书
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    
    location / {
        root   /var/www/html/smartfront/dist;
        try_files $uri $uri/ /index.html?s=$uri&args;
        index index.html index.htm index.php;
    }
    location /api {
        proxy_pass https://myserver; # 当访问https://myserver的时候会去访问172.17.0.5:8000(后端api地址)
        index index.html index.htm;
    }
}

gin配置HTTPS

创建中间件

首先项目路径如下,在middleware文件夹中创建ssl.go文件
在这里插入图片描述
复制下列代码

package middleware
import (
	"github.com/gin-gonic/gin"
	"github.com/unrolled/secure"
)

func TlsHandler() gin.HandlerFunc {
	return func(c *gin.Context) {
		secureMiddleware := secure.New(secure.Options{
			SSLRedirect: true,
			SSLHost:     "localhost:8000",
		})
		err := secureMiddleware.Process(c.Writer, c.Request)

		// If there was an error, do not continue.
		if err != nil {
			return
		}

		c.Next()
	}
}

注册中间件

然后回到注册中间件的地方,添加一下这个middleware

设置HTTPS启动

然后在路由的地方,设置一下端口和证书文件的地方。

这个地方需要注意的是,项目原来用的是优雅关机,但是发现无法升级https,于是就把优雅关机给停掉了。

这个时候当你运行项目的时候,应该会发现下面的监听变成了HTTPS。


欢迎评论区讨论,或指出问题。 如果觉得写的不错,欢迎点赞,转发,收藏。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:37:16  更:2021-08-04 11:38:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:25:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码