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协议,避坑指南相关推荐

  1. Serverless 时代前端避坑指南

    作者 | 张挺 每个时代,从来不缺机会. 云原生的浪潮席卷而来,从 14 年到现在,上云的声音就没有停歇过,而如今到了 2020,云厂商都已经准备好了,而前端,是否也准备好踏入这纷争的领域,去拥抱时代 ...

  2. 【技术三千问】之《modbus问题难点解析》,避坑指南!

    技术三千问: [技术三千问]之<玩转ART-Pi>,看这篇就够了!干货汇总 [技术三千问]之<AT组件问题汇总与解析>,干货汇总! [技术三千问]之<UART串口问题解析 ...

  3. 17条避坑指南:一份来自谷歌的数据库经验贴

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://medium.com/@rak ...

  4. 工业级光纤收发器使用“避坑”指南

    工业级光纤收发器在使用中有很多的注意事项,往往这些注意事项经常被忽略.下面飞畅科技就整理了一些工业级光纤收发器使用"避坑"指南,大家可以仔细看看,引起重视. 使用工业级光纤收发器连 ...

  5. ext列表禁止滑动_后台列表设计避坑指南(下)

    编辑导语:列表页是后台界面的重要组成之一,上篇说了后台列表设计的"搜索"设计(详情见:后台列表设计避坑指南 上):本篇继续讲剩下的两个部分的"坑"和必坑指南,我 ...

  6. 多客技巧分享|【建议收藏】TikTok七大避坑指南帮你少走许多弯路

    很多新手朋友在做tiktok时会遇到非常多大问题,而且也非常容易踩坑,今天就给大家讲一下在tiktok运营时要注意的7大避坑指南! 先说说TikTok运营教程如何打造账号 1.网感培养 首先在我们开始 ...

  7. Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南

    Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南 实验环境 下载Android源码树 在pixel3上安装手机驱动版本 编译Android源码 Android ...

  8. 1.跳槽找工作避坑指南(2019版)

    跳槽找工作避坑指南(2019版) 收录于话题 #乘风破浪的职场,人心险恶的江湖! 文/作者:民工哥 虽说年前就有很多人在修改简历.刷新简历,但是为了大家心中所谓的年终奖,99.9999%的人都会选择沉 ...

  9. 【C语言避坑指南】学习记录

    学习自B站Up双笙子佯谬的视频 [C语言避坑指南]看完这个视频,我再也不害怕指针!_哔哩哔哩_bilibili课件:https://github.com/parallel101/course作业:ht ...

最新文章

  1. http://miicaa.yopwork.com/help/overall/
  2. “指定的文件名无效或太长” 无法拷贝,咋办
  3. 呼叫我或异步REST
  4. 艾泰路由器设置虚拟服务器,艾泰路由器设置步骤
  5. JavaScript 所有数据类型
  6. 修过的一个android framework原生系统代码bug
  7. oracle raw类型 索引,为什么RAW数据类型可以建立索引,但是不走索引
  8. Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别
  9. python科学计算与可视化教程
  10. Linux下的进程池(3)
  11. atitit.提升开发效率---MDA 软件开发方式的革命(5)----列表查询建模
  12. 基于OpenCV库的Gabor滤波器的实现
  13. #考研笔记#计算机之word问题
  14. BCT4157/4157B是一种高带宽、快速单刀双掷(SPDT)CMOS开关
  15. r34300u和r53500u 哪个好
  16. 插入u盘计算机未响应,u盘启动电脑无反应,教您电脑插上U盘后无法启动解决方法...
  17. 预防甲型流感病毒的注意事项和方法
  18. C/C++内存泄漏和野指针的区别
  19. dmc预测控制 matlab,预测控制动态矩阵DMC算法研究分析及仿真.doc
  20. 2017 杭电多校联赛第二场 1003 Maximum Sequence(单调队列)HDU 6047

热门文章

  1. 好久不联系的朋友,我不知道要用什么理由关心你的生活
  2. ubuntu 防火墙开放端口
  3. 杂谈:iphone 4s 会登陆中低端市场吗?
  4. js反转义html转义字符
  5. Py之cv2:cv2(OpenCV,opencv-python)库的简介、安装、使用方法(常见函数、图像基本运算等)最强详细攻略
  6. 【毕业设计-免费】springboot+vue前后端分离-酒店客房管理系统
  7. 依图医疗发布AI全部位辅助诊断产品 全球癌症筛查智能诊疗平台助力肿瘤早筛...
  8. 数据库的应用之(烟草)
  9. BT 种子,磁力链接是个啥?
  10. mutex 使用介绍