打印
[uCOS/RTOS]

【RTOS】 - 宠物定位装置-UCloud篇

[复制链接]
3912|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 nvjwiciw659 于 2020-5-27 16:22 编辑

感谢这次UCloud的赞助,我直接去体验了一把免费服务器,现在简单记录一下我搭建环境的过程。
主要有mqtt服务器,nodered,mysql,ssl认证等,我这边用的是CentOS 7.6 64位系统
以下需要服务器开放部分端口
EMQ:1883 8083 8883 8084 18083
WSS:443
MYSQL:3306
1.Xshell连接
2.更新yum源
yum update(第一次漫长等待)
3.安装docker
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装docker
yum install docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
验证
docker run hello-world

成功
4.docker部署EMQ(mqtt服务器)
获取镜像(我安装的是3.0.1版本)
docker pull emqx/emqx:v3.0.1
启动
docker run -d --name emqx31 -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v3.0.1
查询
docker ps
登录查询

成功
5.配置nginx(备案过的域名和我偷偷在我某里云申请的免费SSL证书)(不需要用微信小程序的可以直接跳过)
此步是用于监听443端口,并代理到mqtt服务器,如果只是个人玩玩可以不用证书,但是微信小程序需要发布的话必须需要SSL认证
安装make工具
yum -y install gcc automake autoconf libtool make
安装g++
yum install gcc gcc-c++
安装pcre正则表达式,因为nginx的rewrite模块和http核心模块都是使用它
yum install pcre pcre-devel
获取 nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz
解压
tar -vzxf nginx-1.18.0.tar.gz
使配置文件nginx生效
cd nginx-1.18.0/ && ./configure
zlib提供压缩算法
yum install zlib zlib-devel
安装OpenSSL库
yum install openssl openssl-devel
JS的webSocket协议头的库
wget https://codeload.github.com/openresty/headers-more-nginx-module/tar.gz/v0.33
解压
tar -vzxf v0.33
添加模块openSSL和headers-more-nginx-module-0.33(地址要填对)
./configure--prefix=/usr/local/nginx--add-module=/root/nginx-1.18.0/headers-more-nginx-module-0.33 --with-http_stub_status_module --with-http_ssl_module
开始编译nginx代码
make && make install
查看当前编译后有哪些模块生效了
cd /usr/local/nginx/sbin && ./nginx -V
修改nginx的配置文件
cd /usr/local/nginx/conf && vim nginx.conf

server {
    listen 443;
    server_name 《域名》;

    ssl on;
    ssl_certificate      cert/domainname.pem;
    ssl_certificate_key  cert/domainname.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 / {
        root   html;
        index  index.html index.htm;
    }

    location = /mqtt {

        # 8083就是我们的emq的websocket的端口号
        proxy_pass http://《域名》:8083;
        proxy_redirect off;
        proxy_set_header Host 《域名》:8083;

        proxy_set_header Sec-WebSocket-Protocol mqtt;
        #more_clear_headers Sec-WebSocket-Protocol;

        # 这些都是 websocket必须要配置的
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        }
}
查询配置文件语法
cd /usr/local/nginx/sbin&& ./nginx -t
重新加载配置文件
cd /usr/local/nginx/sbin&& ./nginx -s reload
这时候访问域名

有锁,成功(测试小程序未连接)

发现问题
新版本的nginx采用新的方式进行监听https请求了
listen 443;
ssl on;
改为
listen 443 ssl;

再测试成功

6.docker部署数据库MYSQL
部署(最新版本)
docker pull mysql:latest
运行
docker run -itd --name mysql-ucloud -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<密码> mysql
查询
docker ps
直接Navicat Premium里连接测试

成功
7.docker部署Noed-red(用于mqtt数据转发至数据库)
一步到位
docker run -it -p 1880:1880 --name mynodered nodered/node-red
转后台
Ctrl+p和Ctrl+q
网页看一看

成功
8.测试微信小程序



漂亮!
环境已经搭建好了,之后的继续努力!
这些都是总结于各位大佬,有阿正,半颗心脏,Mculover666以及网上的各类资源,多亏各位大佬的分享,才能少走了很多弯路,万分感谢!

使用特权

评论回复
评论
nvjwiciw659 2020-5-27 15:11 回复TA
@鲁亮 :先搭建,到时候用不用再说哈哈,不一定能做那么高级,时间估计不允许 
鲁亮 2020-5-27 12:30 回复TA
感觉你这个要比我的idea高大上许多呀 

相关帖子

沙发
21ic小喇叭| | 2020-6-5 11:23 | 只看该作者
大大,我看您写的非常专业,您如果完成了作品,千万别忘记按比赛要求,做成文档,上传到论坛

文档模板在咱们参赛群里有,如果没找到,联系大掌柜单独发给您

提交作品以后,大掌柜给您寄礼品

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

79

帖子

0

粉丝