微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx 在 MQTTS 上进行负载平衡

如何解决nginx 在 MQTTS 上进行负载平衡

我找到了一些文档并成功地使用 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,并且该站点可以正确处理网络负载平衡。

正如您所看到的 mqtt 设置,这些设置很好用。现在,我应该添加证书。

我首先添加了这些行(在 Web 设置中)

ssl_certificate /etc/Nginx/ssl/domain/server.crt;
    ssl_certificate_key /etc/Nginx/ssl/domain/server.key;

    ssl_protocols TLSv1.2;

但遗憾的是,这就是我对服务器端知识的了解程度。

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

我确实注意到网络侦听器中的“位置”区域有很多 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;
    }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。