省直部门门户网站建设,网站视频点播怎么做,凡科网建网站付费链接怎么做,建筑模板生产厂家有哪些前面我们有介绍过单机版EMQX的安装 CentOS7 安装 EMQX#xff08;MQTT#xff09;#xff0c;今天我们来讲一下实际项目里用的到MQTTS平台。 一、EMQX单机配置 简单部署两个节点#xff0c;修改对应配置文件 (/usr/local/emqx/etc/emqx.conf) 中的node内容#xff1a; nam…前面我们有介绍过单机版EMQX的安装 CentOS7 安装 EMQXMQTT今天我们来讲一下实际项目里用的到MQTTS平台。 一、EMQX单机配置 简单部署两个节点修改对应配置文件 (/usr/local/emqx/etc/emqx.conf) 中的node内容 name “emqx10.12.42.235” name “emqx10.12.42.236” cookie 值不要改动在同一个集群里的阶段cookie 必须一致。 data_dir 是只本机存储数据的路径默认不要调整执行 emqx 安装位置的 data目录如/usr/local/emqx/data 如果确实要调整那只要修改主Node阶段对应的 data_dir 目录就可以了。 其它加入此集群的客户机本地的数据目录会被清空用于同步复制主 Node 的数据。 其余配置不变。 执行启动命令 查看单机运行情况 都已经正常运行。
二、加入EMQX集群 重要的事情说三遍务必检查端口开放情况务必检查端口开放情况务必检查端口开放情况 端口开放列表如下MQTT端口8083Web控制台端口18083集群节点发现端口4370集群 RPC 端口5370 所有节点的系统都需要开发以上端口 当然如果你关闭了防火墙的话额好吧你不是项目环境页没关系。 当前我们设定的主 Node 为 emqx10.12.42.235 这台机器。 在 emqx0210.12.42.236 这台机器上执行 emqx_ctl cluster join emqx10.12.42.235 返回结果 至此两台机器的EMQX集群就完成了登录 Web控制台查看 任何一个阶段登录到Web控制台都能看到集群中的所有节点的状态。 同时所有加入主节点的emqx本机data中的数据都会被清空用于同步复制一份主节点中的数据。 之后加入的节点也都是如此本机原有数据被清除用于同步已有集群中的数据所有集群中的数据都是保持同步的。
注意事项 1、集群模式的端口策略ListeningPort BasePort Offset 模式。 查看官方最新说明文档如下 也就是说如果你的 emqx.conf 配置文件中node.name 是以数字结尾或者前面是以数字结尾如emqx1、emqx-1、emqx0110.12.42.235 等那么对应的集群端口包括发现端口和RPC端口都需要增加对应的数字。 emqx01 发现端口和RPC端口分别是4371 和 5371。 emqx-2 对应的就是4372 / 5372。 以此类推。 这个在不知情的情况下还蛮坑的。 我的node.name原来就是 emqx01xx让我多折腾了半天才找到这个问题。 而且 RPC 端口都只有在官方文档里有直接说明百度上找的都是之前的版本和文档了都没有提到满满都是坑啊 2、已经加入集群服务任何节点重启之后还是会自动在集群里面的不需要再加入。
三、SSL证书生成 如果是内网请参考内网IP自签SSL证书 如果是公网请咨询证书提供商或者服务器提供商。 提供相关资料就可以了主要是域名资料还有就是证书最好是域名通配符证书可以用到所有的二级域名上比较方便。
四、Nginx的stream模式配置 前面有篇文章:CentOS7 安装 Nginx设置自启动及站点配置介绍过Nginx及HTTPS协议的配置。 这边有所不同主要在于 Stream模式的配置。 在 Nginx 编译的时候除了HTTPS的参数(–with-http_ssl_module)外还需要加 stream 模式的参数–with-stream 和 --with-stream_ssl_module。 合计安装配置参数如下 ./configure --with-stream --with-http_ssl_module --with-stream_ssl_module 安装完成后配置 nginx 负载均衡如下
stream {# 轮询负载均衡配置upstream emqx_cluster {server 10.12.42.235:1883 weight1;server 10.12.42.236:1883 weight1;}server {# 监听 8883 端口listen 8883 ssl;# 反向代理到 emqx_clusterproxy_pass emqx_cluster;proxy_buffer_size 4k;# 证书配置ssl_certificate /usr/local/nginx/cert/server.pem;ssl_certificate_key /usr/local/nginx/cert/server.key;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;}
}注意stream配置不能放到http内也不能放到/etc/nginx/conf.d/因为stream是通过tcp层转发而不是http转发。