征文投稿丨使用轻量应用服务器搭建扫码测试项目

编者按:本文来自轻量应用服务器征文活动用户投稿,已获得作者(昵称初七)授权发布。

 

公司现有WEB项目已经集成进企业微信自建应用里,还需要对项目功能进行扩充,需要调用扫一扫功能进行条码或二维码的识别,因而购买了一台轻量应用服务器搭建这个扫码测试项目。

 

之所以选择轻量应用服务器,主要是看中它的简洁高效。服务器配置的选择与默认环境选择都十分的方便,而且每月赠送流量,不需要额外费用;网关安全方面,防火墙配置也是相当简单方便,只需要在控制台内添加规则即可。

image001-打码.png

 

接下来一步步展示我的测试项目的搭建过程。

 

一、镜像选择

镜像选择上,阿里云的轻量应用服务器提供了22款主流应用搭建环境,系统镜像与应用镜像都很丰富,可以满足不同开发者的多样化需求。由于我的相关程序都是用go开发的,所以我这里只选择了系统镜像,使用的是SERVER 2008 R2系统,够用即可无需最新。

image.gifimage005.png

 

二、服务器环境搭建

搭建服务器环境时,我只安装了MSSQL_Express_2008R2、Telnet客户端。由于我的应用对数据库依赖很低也没必要单独购买,所以只需要在现有系统上安装即可。下载地址:

https://www.microsoft.com/zh-cn/download/details.aspx?id=30438

 

三、编写网关程序

虽说叫轻量轻应用服务器,但也真不想让它太轻松。考虑到以后服务器WEB应用的增加,而服务器只有一个80端口,如果每个应用地址后再配一个“:端口”这样太丑陋了。所以我需要一个网关,现在网关产品很多,比如Nginx。本着学习的态度,决定自己写一个反向代理程序。用go语言写反向代理还是很简单的,核心代码如下:

 

func (this *handle) ServeHTTP(w http.ResponseWriter, r *http.Request) {
             remote, err := url.Parse("http://内网地址:内网端口/UrlPath")
             if err != nil {
                          panic(err)
             }
             proxy := httputil.NewSingleHostReverseProxy(remote)
             proxy.ServeHTTP(w, r)
}

 

其他的主要还包括一些热加载配置,以及黑名单、访问控制等辅助功能设置项,根据自己的实际需要进行操作即可。

 

四、扫码测试项目开发

 

1、 新建应用

进入到企业微信后台→应用管理,创建应用“扫码测试”。

image007.png

 

需要调用JS-SDK,所以要在开发者接口内填写授信域名并完成验证。验证这里很重要,而且是必须的。

image009.png

 

设置应用菜单如下图:

image.gifimage011.png

 

这样就完成了企业微信部分的工作。进入企业微信就可看到名为“扫码测试”的应用。进入后点下边的扫码菜单,即可进入扫码页面。

图13.jpg

 

2、 后台服务

后台代码分为三部分:

路由代码部分:qy-weixin获取签名信息及相关配置。用于前端通过config接口注入权限验证配置;doqrcode是前端扫码页面。

image017.png

 

后端代码部分

后端代码之一:获取Token用于获取应用jsapi_ticket。由于操作受到调用次数限制,所以需要自己缓存Token。

image.gifimage019.png

 

后端代码之二:获取应用的jsapi_ticket,用于计算agentConfig的签名。由于操作受到调用次数限制,所以需要自己缓存Ticket。

image021.png

 

后端代码之三:签名及相关信息

image023.png

 

前端页面代码部分

image025.png

image027.png

image029.png

image031.png

 

3、测试结果如下

图14.jpg

以上就是使用轻量应用服务器搭建扫码测试项目所有信息与步骤,从运行结果来看很成功,后面会进行服务器的相关压力测试。

 

我在一台轻量应用服务器上运行了几个项目,基本没有卡顿或是终端连接等问题出现,总体上对轻量应用服务器很满意,简单方便。

 

点击我要投稿,参与轻量应用服务器全新升级的征文活动,奖励更多,每月都可以参与哦~

posted @ 2022-01-20 19:56  弹性计算百晓生  阅读(121)  评论(0编辑  收藏  举报