首页 > 系统相关 >Nginx反向代理MQTT服务端(emqx)

Nginx反向代理MQTT服务端(emqx)

时间:2023-12-26 16:01:37浏览次数:35  
标签:nginx -- sudo module Nginx MQTT emqx

安装Nginx

此处使用Ubuntu22.04LTS系统,通过源码编译安装的方式安装Nginx。你也可以使用Docker或二进制包安装Nginx。

环境要求

在编译和安装 Nginx 前,需要确保系统中已经安装了以下依赖项:

GNU C 和 C++ 编译器
PCRE (Perl Compatible Regular Expressions) 库
zlib 压缩库
OpenSSL 库
可以使用以下命令在 Ubuntu 系统中安装以上依赖项:

sudo apt-get update
sudo apt-get install build-essential libpcre3-dev zlib1g-dev libssl-dev

下载源码

可以从 Nginx官方网站下载最新的稳定版本,例如:

wget https://nginx.org/download/nginx-1.24.0.tar.gz

编译配置命名

下载完成后,需要解压并进去源码目录

tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0

使用以下命令进行编译配置:

./configure \
 --with-threads \
 --with-http_stub_status_module \
  --with-http_ssl_module \
  --with-http_realip_module \
  --with-stream \
  --with-stream_ssl_module

其中 --with-http_ssl_module 参数用于添加 SSL 功能支持,--with-stream--with-stream_ssl_module 参数用于添加 TCP 反向代理支持。

开始编译

完成配置后,可以使用以下命令开始编译:

make

安装

编译完成后,可以使用以下命令安装 Nginx:

sudo make install

将 Nginx 可执行文件连接到系统 PATH 中的目录:

sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx

开始使用

Nginx 的配置文件默认位于 /usr/local/nginx/conf/nginx.conf,将本页的配置示例添加到文件末尾即可。Nginx 基本操作命令如下:
检查配置文件:

sudo nginx -t

如果 Nginx 配置文件验证成功,则可以启动 Nginx:

sudo nginx

重新加载正在运行的 Nginx 并应用新配置,建议在操作前检查配置是否无误:

sudo nginx -s reload

停止 Nginx:

sudo nginx stop

反向代理MQTT broker

Nginx作为负载均衡器将来自客户端的请求分发到多个后端服务器,以确保负载平衡和性能优化。Nginx 非常适用于物联网应用,因为它可以处理大量的并发请求。在物联网中,设备数量庞大,因此需要一个可以处理大量请求的服务器来保证稳定性。EMQX 原生支持由多个 MQTT 服务器组成的分布式集群架构,因此,使用 Ngnix 部署负载均衡以及 EMQX 集群,可以保证高可用性和可扩展性,所以在这里我们运用Nginx的反向代理,实现EMQX(MQTT Broker)的冗余备份和负载均衡。

我们可以在 Nginx 的配置文件中添加以下配置来反向代理来自客户端的 MQTT 连接请求,将请求转发至后端 MQTT 服务器。

stream {
  upstream mqtt_servers {
    # down:表示当前的 server 暂时不参与负载
    # max_fails:允许请求失败的次数;默认为 1
    # fail_timeout:失败超时时间,默认 10s, max_fails 达到次数后暂停的请求时间
    # backup:其它所有的非backup机器down或者忙的时候,请求backup机器

    server 172.18.157.180:1883 max_fails=2 fail_timeout=10s;
    server 172.18.157.179:1883;
  }

  server {
    listen 1884;
    proxy_pass mqtt_servers;

    # 启用此项时,对应后端监听器也需要启用 proxy_protocol
    proxy_protocol on;
    proxy_connect_timeout 10s;
    # 默认心跳时间为 10 分钟
    proxy_timeout 1800s;
    proxy_buffer_size 3M;
    tcp_nodelay on;
  }
}

修改好配置后,使用nginx -s reload重新加载正在运行的 Nginx 并应用新配置。

这时候,我们可以用MQTT客户端连接nginx的端口号,然后nginx就会代理我们的请求,采用轮询负载均衡策略,将请求依次分配给每个后端服务器,循环往复。

标签:nginx,--,sudo,module,Nginx,MQTT,emqx
From: https://www.cnblogs.com/ydqblogs/p/17911890.html

相关文章

  • 2、安装nginx
    1、检查Linux内核版本uname-a内核版本为3.10.0,Linux安装需要内核版本>=2.62、安装依赖环境安装gcc如果已经安装过可以忽略yuminstallgcc安装g++如果已经安装过可以忽略yuminstallgcc-c++安装PCRE库(perlcompatibleregularexpression)如果已经安......
  • Keepalived 安装 配置 Nginx 高可用
    Keepalived安装配置Nginx高可用Keepalived安装yuminstall-ykeepalived配置文件位置/etc/keepalived/keepalived.conf配置nginx高可用vi/etc/keepalived/keepalived.confvrrp_scriptchk_gluster{script"/usr/bin/systemctlis-activeglusterd"int......
  • Nginx安装部署
    如果没有gcc环境,需要安装gcc:yuminstallgcc-c++安装依赖yum-yinstallgcczlibzlib-develpcre-developensslopenssl-devel#进入文件夹cd/usr/local#下载安装包wgethttp://nginx.org/download/nginx-1.18.0.tar.gz#解压安装包tar-xvfnginx-1.18.0.tar.g......
  • EMQX集群的创建和使用
    EMQX的安装Ubuntu本页将指导您如何在Ubuntu系统中下载安装并启动EMQX。通过Apt源安装EMQX支持通过Apt源安装,免除了用户需要手动处理依赖关系和更新软件包等的困扰,具有更加方便、安全和易用等优点。如希望通过Apt源安装EMQX,可参考如下步骤。1.通过以下命令配置EMQ......
  • Nginx 工作原理简介
    在了解Nginx工作原理之前,我们先来了解下几个基本的概念以及常见的I/O模型。基本概念同步:就是指调用方发起一个调用,在没有得到调用结果之前,该调用不返回。换句话说,也就是调用方发起一个调用后,一直等待被调用方返回结果,直到获取结果后才执行后续操作。生活中的同步场景:等电梯:按电梯......
  • minio集群的部署【nginx+minio]
    1、配置MinIO集群配置本地解析在/etc/hosts中配置vim/etc/hosts#添加以下内容,每台MinIO节点都需要配置192.168.5.1minio-1192.168.5.2minio-2192.168.5.3minio-3192.168.5.4minio-4 在4台服务器上创建MinIO存储文件夹mkdir-p/data/miniochmod750/data/minio......
  • nginx代理简单配置
    1./html/web里的config.js可以配置一些参数web是dist,npmrunbuild压缩文件2./conf里nginx.conf配置代理   3/nginx-service.xml配置 4/该目录下cmd创建服务nginx-service.exeinstallnginx-service.exestart  相关命令:nginx-service.exeinstall#安装服务......
  • docker运行nginx实现TCP代理
    1、安装docker和docker-compose步骤略2、任意目录创建docker-compose.yml文件touchdocker-compose.ymltouchnginx.conf3、修改docker-compose.yml文件version:'3'services:nginx:image:nginxcontainer_name:tcpnginxnetwork_mode:hostvolum......
  • 在Ubuntu下部署nginx——nginx的安装与卸载
    一、什么是nginx?Nginx(发音“engine-x”)是一款高性能的Web服务器和反向代理服务器,也是一款IMAP/POP3/SMTP代理服务器。Nginx的特点是占用内存少、并发能力强,采用了基于事件驱动的异步非阻塞处理方式,转发和代理性能优异,被广泛应用于高并发、分布式系统架构的Web服务器集群中。Ngin......
  • 1、nginx概述
    nginx特点更快:在正常情况下,单次请求会得到更快的响应;在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求。高扩展性:当对某一个模块修复Bug或进行升级时,可以专注于模块自身,无须在意其他。在HTTP模块中,还设计了HTTP过滤器模块:一个正......