nginx在MQTT上实现负载平衡



我找到了一些文档,并用nginx成功地实现了MQTT的负载平衡。

stream {
upstream broker {
server 10.1.0.3:1883 fail_timeout=1s max_fails=1;
server 10.1.0.5:1883 fail_timeout=1s max_fails=1;

}
server {
#       access_log /var/log/nginx/access.log;
#        error_log /var/log/nginx/error.log;
listen 1883;
listen 8883;
proxy_pass broker ;
proxy_connect_timeout 1s;
}
}

现在,我正在努力使mqtts发挥作用。我有一个域,具有功能性SSL,该网站可以正确地处理web的负载平衡。

正如您所看到的,mqtt的设置非常有效。现在,我应该添加证书。

我开始添加这些行(在网络设置中(

ssl_certificate /etc/nginx/ssl/domain/server.crt;
ssl_certificate_key /etc/nginx/ssl/domain/server.key;
ssl_protocols TLSv1.2;

但遗憾的是,这只是我服务器端知识的范围。

我需要:将cert信息复制到本地网络上的机器,并告诉负载均衡器转发到这些机器上的mqtts?

我确实注意到了";位置";web监听器中的区域有相当多的proxy_header命令,也许这里需要一些?

再说一次,我在这里几乎没有经验,所以我有点在黑暗中被刺伤。

是的,它起作用了。它只是缺少侦听字符串末尾的ssl。现在,它使用SSL证书成功地进行了负载平衡,并传递到网络上的本地mqtt。再一次,我很抱歉发布这样一个琐碎的问题。。。希望其他人看到我的错误并从中受益

stream {
upstream broker {
server 10.1.0.3:1883 fail_timeout=1s max_fails=1;
server 10.1.0.5:1883 fail_timeout=1s max_fails=1;

}
server {
#       access_log /var/log/nginx/access.log;
#        error_log /var/log/nginx/error.log;
ssl_certificate /etc/nginx/ssl/domain/server.crt;
ssl_certificate_key /etc/nginx/ssl/domain/server.key;
ssl_protocols TLSv1.2;

listen 1883;
listen domain.com:8883 ssl;
proxy_pass broker;
proxy_connect_timeout 1s;
}
}

最新更新