Bootstrap

服务器搭建与MQTT环境部署(简要版)

1.1 购买服务器

        国内的服务器厂家很多,考虑到稳定可靠的云服务才是最关键的,而规模比较大的公司在云应用层面有着非常丰富的应用经验,本文考虑阿里云、华为云、腾讯云这三家云平台,因为它们背靠互联网巨头,更值得用户的信赖。现对这三种云服务进行对比分析:

        阿里云:在云服务器市场,阿里云服务器国内市场排名第一是无可争议的。它最大的特点就是弹性伸缩、多样化配置以及稳定可靠,云服务器本身在数据安全和稳定性方面的优势,可以让用户更加放心的使用阿里云服务器。

        华为云:华为是硬件出身的,技术也是相对出色,它是唯一一家提供端到端服务能力的云计算平台。从基本的硬件设备到高级虚拟化部署,华为都有独立开发的产品。而且华为云服务器安全性能更强,从底层物理架构到软件基础服务,全栈式自研架构,容灾、灾备性能更强、更安全。也就是说,华为云技术积累比较雄厚,安全性能更加强大。

        腾讯云:相比与阿里云,腾讯云的研发要迟3年左右的时间,所以市场占有率在国内排第二,因此腾讯云会经常做活动促销,用以吸引更多用户使用腾讯云。尤其是入门级的轻量级服务器,其性价很高,非常适合个人用户的轻量级服务器的搭建。

        结合个人用户轻量级的开发目的,综合以上三种云服务器各自的特点与优势,本文选择了腾讯云。以下为购买腾讯云流程的几个关键步骤:

(1)计费模式和地域

        根据毕设作品展示的需要,计费模式选择包月三个月,地域选择离广州,具体配置如图4.1所示:

图4.9 申请备案信息

        其中备注要特别注明自己的用途,只是用于个人作品或者应用的开发,不能涉及商业用途,否则不能审核通过。笔者就是在第一次填写的时候备注没有说明清楚被驳回了,然后是客服打的电话说明了问题,修改后再次提交后通过了审核,笔者的审核记录如图4.10所示:

图4.10 备案审核记录

(3)备案成功。备案过程会比较长,收到备案通过的短信通知后也就完成了漫长的域名备案环节。

4.11备案成功

1.5 申请SSL证书

        SSL证书(Secure Sockets Layer Certificate)是一种数字证书,可以用来保护网站和客户端之间的数据传输安全。SSL证书通过一种加密协议,在互联网上实现对信息传输的保护,防止信息泄露和数据窃取。SSL证书通常由网站所在的服务器颁发,用于标识网站身份和提供认证服务。SSL证书对于互联网信息传输的安全和验证都有着至关重要的作用,在网站、电子商务和在线金融等领域被广泛应用。

        微信小程序对通信的安全性的要求比较高,考虑到本文采用微信小程序开发应用,所以一定要申请SSL证书。下面介绍申请SSL证书的几个关键步骤:

(1)进入腾讯云证书控制台申请免费SSL证书,申请界面如图4.12所示:

图4.12 申请免费SSL证书界面

(2)回到购买域名的平台添加一条解析记录。注意解析类型,添加解析后的界面如图4.13所示:

图4.13 添加一条解析记录后界面

        添加解析记录后等待十几分钟证书就会下发了,下发SSL证书的界面如图4.14所示:

图4.14 SSL证书下发界面

(3)下载证书。因为部署emqx的需要和为后续程序上线做准备,这里从SSL证书列表中选择Nginx进行下载,下载界面如图4.15所示:

图4.15 下载SSL证书界面

Nginx中有四个文件重要的文件,分别为.crt .csr .key和.pem类型,它们具体的功能说明如表4.2所示:

表4.2 Nginx中各个文件具体说明

后缀

说明

域名_bundle.crt

CA证书文件

域名.csr

csr文件时证书签名请求文件,在创建证书时使用,因此配置SSL服务时不需要关心此文件

域名.key

证书的私钥文件,以base64和格式分隔符加密

.pem

证书的base64加密文件,即就是证书

1.6 EMQX配置SSL证书

(1)进入emqx文件下的certs目录下创建ssl目录

  1. cd /etc/emqx/certs      #路径不一定一样,具体看自己的emqx在哪  
  2. mkdir ssl               #创建目录ssl  

(2)打开本地终端WIN+R 输入cmd,进入下载证书的目录

  1. cd 路径  
  2. dir   #查看当前目录下的文件  

(3)使用scp命令,将证书与密匙文件传到云服务器的ssl目录下

  1. scp ddup.fun.key [email protected]:/etc/emqx/certs/ssl  

(4)配置emqx.conf文件

        需要修改ssl的三个地方(wss进行同样的操作,下面不再赘述),详见表4.3:

表4.3 需要修改ssl参数

参数名称

说明

listener.ssl.external.keyfile

秘钥文件 即.key文件

listener.ssl.external.certfile

base64加密的证书文件 .pem文件

listener.ssl.external.cacertfile

CA证书文件 即.crt文件

        在进入emqx.conf文件后,通过”/”匹配的指令快速定位上述三个参数并且进行修改,修改这些参数的目的是为了加载前面下载的各个证书,方便网络安全认证,为微信小程序的上线做准备。在云服务器Ubuntu系统上修改ssl参数和wss参数的界面如下面的图4.16和4.17所示:

图4.16 修改ssl

图4.17 修改wss

        进行ssl和wss文件的修改之后,重启EMQX进行即可实现MQTT平台的搭建,为了验证MQTT平台搭建的成功与否,在hahaha.top:18083(其中hahaha.top是域名)的后台的Websocket进行ssl连接,发现连接成功,这说明ssl证书有已经配置成功。

        有了ssl安全证书的许可,现在已经可以实现其他设备和微信小程序进行数据的交互的功能,基于此就可以进行微信小程序的设计与开发。至此,基于EMQX的MQTT平台搭建成功,后台查看Websocket如图4.18所示:

图4.18 后台查看Websocket

1.7 小结

        介绍了基于EMQX搭建MQTT云服务平台的主要环节,其中包括了购买服务器、搭建EMQX服务器、购买并且解析域名、域名备案、申请SSL证书以及EMQX配置SSL证书。其中,域名备案、申请SSL证书和服务器配置SSL证书是比较关键的核心环节。尤其是域名备案需要较长时间的审核,也是上述步骤中最复杂的一个环节,需要耐心咨询和等待。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;