使用域名转发mqtt协议,避坑指南
1.需求
我们需要通过域名的方式进行mqtt的链接。这样的好处就是当我们后台ip改变的时候,前端的设备能不受影响。
2.使用nginx进行转发
注意问题:配置反向代理TCP的方式,需要使用nginx的stream服务节点。该节点是和http结点是并列的。
使用的nginx的版本:1.23.0
版本的问题,是因为有些老版本还需要手动安装支持stream。所以如果我们使用了高版本,默认都是支持这些的。
2.1.nginx里的配置文件
我们直接在nginx.conf里配置,因为需要和http同节点。
完整的配置文件也贴一下:
stream {log_format proxy '$remote_addr [$time_local] ''$protocol $status $bytes_sent $bytes_received ''$session_time "$upstream_addr" ''"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';access_log /var/log/nginx/mqtt_access.log proxy;open_log_file_cache off;upstream mqtt_tcp_server {server xxx.xxx.xxx.xxx:1883; #这里要改自己的ip地址}server {listen 1883; #监听端口 也可以使用1883proxy_connect_timeout 150s;proxy_timeout 150s;proxy_pass mqtt_tcp_server; #反向代理地址proxy_buffer_size 3M;tcp_nodelay on;}
}
3.配置完之后,重启nginx不生效
netstat -tunpl
使用该命令,可以查看到我们监听1883端口是否已经起来。刚开始异常的时候,因为使用nginx -t,发现语法没有问题,在使用nginx -s reload命令启动的时候。也没有异常,但最终发现1883端口还是没有起来。我们去查看nginx的error日志,最后发现了一个错误。
2022/06/24 14:48:40 [emerg] 11768#11768: bind() to 0.0.0.0:1883 failed (13: Permission denied)
3.1.这个问题,实际上是SELinux 开放和关闭端口问题;
查看所有开放端口:
semanage port -l
查看某个端口:
查看1883端口是否已经开启来:
semanage port -l | grep 1883
已经启动后的结果。
查看selinux针对http的策略开放的端口:
semanage port -l | grep http_port_t
添加端口:
重点来了,如果上面的结果是没有开放出来,则需要我们手动添加端口进去:
semanage port -a -t http_port_t -p tcp 1883
http策略添加开放1883端口。
关闭http策略的某个端口:
最后,如果在一些时候,我们不需要开启这个端口的时候,则可以关闭该端口:
semanage port -d -t http_port_t -p tcp 1883
使用域名转发mqtt协议,避坑指南相关推荐
- Serverless 时代前端避坑指南
作者 | 张挺 每个时代,从来不缺机会. 云原生的浪潮席卷而来,从 14 年到现在,上云的声音就没有停歇过,而如今到了 2020,云厂商都已经准备好了,而前端,是否也准备好踏入这纷争的领域,去拥抱时代 ...
- 【技术三千问】之《modbus问题难点解析》,避坑指南!
技术三千问: [技术三千问]之<玩转ART-Pi>,看这篇就够了!干货汇总 [技术三千问]之<AT组件问题汇总与解析>,干货汇总! [技术三千问]之<UART串口问题解析 ...
- 17条避坑指南:一份来自谷歌的数据库经验贴
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://medium.com/@rak ...
- 工业级光纤收发器使用“避坑”指南
工业级光纤收发器在使用中有很多的注意事项,往往这些注意事项经常被忽略.下面飞畅科技就整理了一些工业级光纤收发器使用"避坑"指南,大家可以仔细看看,引起重视. 使用工业级光纤收发器连 ...
- ext列表禁止滑动_后台列表设计避坑指南(下)
编辑导语:列表页是后台界面的重要组成之一,上篇说了后台列表设计的"搜索"设计(详情见:后台列表设计避坑指南 上):本篇继续讲剩下的两个部分的"坑"和必坑指南,我 ...
- 多客技巧分享|【建议收藏】TikTok七大避坑指南帮你少走许多弯路
很多新手朋友在做tiktok时会遇到非常多大问题,而且也非常容易踩坑,今天就给大家讲一下在tiktok运营时要注意的7大避坑指南! 先说说TikTok运营教程如何打造账号 1.网感培养 首先在我们开始 ...
- Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南
Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南 实验环境 下载Android源码树 在pixel3上安装手机驱动版本 编译Android源码 Android ...
- 1.跳槽找工作避坑指南(2019版)
跳槽找工作避坑指南(2019版) 收录于话题 #乘风破浪的职场,人心险恶的江湖! 文/作者:民工哥 虽说年前就有很多人在修改简历.刷新简历,但是为了大家心中所谓的年终奖,99.9999%的人都会选择沉 ...
- 【C语言避坑指南】学习记录
学习自B站Up双笙子佯谬的视频 [C语言避坑指南]看完这个视频,我再也不害怕指针!_哔哩哔哩_bilibili课件:https://github.com/parallel101/course作业:ht ...
最新文章
- http://miicaa.yopwork.com/help/overall/
- “指定的文件名无效或太长” 无法拷贝,咋办
- 呼叫我或异步REST
- 艾泰路由器设置虚拟服务器,艾泰路由器设置步骤
- JavaScript 所有数据类型
- 修过的一个android framework原生系统代码bug
- oracle raw类型 索引,为什么RAW数据类型可以建立索引,但是不走索引
- Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别
- python科学计算与可视化教程
- Linux下的进程池(3)
- atitit.提升开发效率---MDA 软件开发方式的革命(5)----列表查询建模
- 基于OpenCV库的Gabor滤波器的实现
- #考研笔记#计算机之word问题
- BCT4157/4157B是一种高带宽、快速单刀双掷(SPDT)CMOS开关
- r34300u和r53500u 哪个好
- 插入u盘计算机未响应,u盘启动电脑无反应,教您电脑插上U盘后无法启动解决方法...
- 预防甲型流感病毒的注意事项和方法
- C/C++内存泄漏和野指针的区别
- dmc预测控制 matlab,预测控制动态矩阵DMC算法研究分析及仿真.doc
- 2017 杭电多校联赛第二场 1003 Maximum Sequence(单调队列)HDU 6047
热门文章
- 好久不联系的朋友,我不知道要用什么理由关心你的生活
- ubuntu 防火墙开放端口
- 杂谈:iphone 4s 会登陆中低端市场吗?
- js反转义html转义字符
- Py之cv2:cv2(OpenCV,opencv-python)库的简介、安装、使用方法(常见函数、图像基本运算等)最强详细攻略
- 【毕业设计-免费】springboot+vue前后端分离-酒店客房管理系统
- 依图医疗发布AI全部位辅助诊断产品 全球癌症筛查智能诊疗平台助力肿瘤早筛...
- 数据库的应用之(烟草)
- BT 种子,磁力链接是个啥?
- mutex 使用介绍