关于nginx配置域名代理后端emqx1883端口的问题

环境信息

  • EMQ X 版本:4.3-rc.5
  • 操作系统及版本:centos7
  • 其他

问题描述

公司环境为阿里云域名解析mqtt.12345.com解析到公司idc机房的外网ip,然后我们再idc机房配置了nginx,nginx使用stream模块配置了1883端口代理到后端服务器的1883端口。

目前的问题是,现在使用公司所有只要域名解析为idc机房的外网ip的域名(例如www.12345.com)均可访问,此带来了很多不安全性因素,想只用mqtt.12345.com这个域名对1833做一个类似绑定的操作,别的域名无法访问,只有此域名可以,是否可以实现呢?

急候回复,感谢

配置文件及日志

image

server_name 貌似是不支持在stream模块中的吧,我配置的时候nginx -t报unknown那个错误,请问您那里可以配置server_name么,

建议使用设备认证功能。设备应该是有管理的,而不是禁止所有的连接。

我这是服务端,并不是终端呀。

我可以这么理解么,就是防火墙上开启策略针对目标1883端口源域名做一个限制?

是服务端对终端的认证,可以参考一下文档

好的,后面我看一下,多谢

您好,感谢昨天的回复,我们用的就是mensia的基于用户名和密码认证,别的认证有什么优势或者推荐哪种呢?

推荐 mnesia ,目前是性能最好也没有外部资源依赖的。其他的情况主要看你的业务逻辑和项目架构,方便提供什么服务就用什么。

我也发现了同样的问题,现在是只要解析在emq服务器上的域名都可以通过域名+1883端口号连接mqtt,虽然设置的auth验证,但是我想要的效果的是指定某个特定的域名去访问mqtt而不是解析到这太服务器上的所有域名都可以访问mqtt,请问怎么去给mqtt服务绑定一个固定域名呢?