emqx集群+nginx负载均衡

1.虚拟机

准备两台虚拟机,网上都有安装教程,我的是virtual box +centos7,附加一个centos7的中科大镜像地址:

http://mirrors.ustc.edu.cn/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

IP地址分别为:

192.168.1.111 192.168.1.112

2.下载emqx(两台一起)

1. 下载 emqx-centos7-v4.1.5.x86_64.rpm

wget https://www.emqx.com/zh/downloads/broker/4.1.5/emqx-centos7-v4.1.5.zip

2.安装

unzip emqx-centos7-v4.1.5.zip

3.运行

./emqx/bin/emqx start

4.相关命令


查看状态:   ./emqx/bin/emqx_ctl status
停止服务     ./emqx/bin/emqx stop

5.打开可视化dashboard

地址为: http://ip地址:18083/ (默认账号: admin 密码: public)

能打开说明安装成功

3.修改配置

找到emqx.conf 打开
在这里插入图片描述

修改node.name 为各自的ip(112的机器就改为emqx@192.168.1.112)
在这里插入图片描述
可以在登录dashboard看看,节点从127.0.0.1变成修改的 就说明成功

4.集群

将111集群到112机器上,就在111机器上输入命令:

./emqx/bin/emqx_ctl cluster join eqmx@192.168.1.112

查看集群状态:

./emqx/bin/emqx_ctl cluster status

如果是这样,说明集群成功:
在这里插入图片描述
打开可视化dashboard
在这里插入图片描述

5.nginx负载均衡

1.nginx下载:(我是在112机器上安装了nginx,没必要在整个机器了)

1 yum install openssl
  yum install zlib
  yum install pcre

2 rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  yum install nginx
  service nginx start
3 直接浏览器访问localhost就会出现Nginx的欢迎界面表示你安装成功了,否则就是安装失败了

2.文件配置

成功后,修改nginx.conf(在etc/nginx下)

stream {
  # 轮询负载均衡配置
  upstream emqx_cluster {
      server 192.168.1.112:1883 weight=1;
      server 192.168.1.111:1883 weight=1;
  }
  server {
      # 监听 8884 端口
      listen 8884;
      # 反向代理到 emqx_cluster
      proxy_pass emqx_cluster;
      proxy_buffer_size 4k;
  }
}

3.执行命令

修改完成配置后,执行命令:

nginx -t        :自我检查conf文件
nginx -s reload :重新加载

4.模拟负载均衡

用mqttx模拟客户端连接,端口别1883了,要用884
在这里插入图片描述
模拟了四个客户端连向112节点
在这里插入图片描述

然后去控制台看看有没有客户端分配到111节点上
在这里插入图片描述

6.可能遇到问题总结:

1.端口问题:1883,18083,直接把虚拟机防火墙关了,不用费事在开放端口了
2.没有负载均衡成功,因为开放的8884端口被限制了。执行命令:

getenforce
setenforce 0

在这里插入图片描述
3.报错:

RPC to emqx@192.168.17.129 failed: {‘EXIT’, {badarg, [{ets,match, [emqx_command,{{‘_’,status},‘$1’,‘_’}], []}, {emqx_ctl,lookup_command,1, [{file,“emqx_ctl.erl”},{line,118}]}, {emqx_ctl,run_command,2, [{file,“emqx_ctl.erl”},{line,103}]}, {rpc,‘-handle_call_call/6-fun-0-’,5, [{file,“rpc.erl”},{line,197}]}]}}
解决:找到emqx下的data下的mnesia目录 删掉他
4.报错:Node ‘emqx@192.168.1.111’ not responding to pings.
解决:ps -ef看看emqx服务,然后kill -9 xxx ,之后在重新开启emqx服务

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Red Hat服务器上搭建Nginx负载均衡的过程如下: 1. 首先,确保你已经安装了Red Hat操作系统,并且具备root权限。 2. 下载Nginx的源代码包。你可以从Nginx官方网站下载最新版本的源代码包,例如nginx-1.20.1.tar.gz。 3. 解压源代码包。在终端中执行以下命令: ```shell cd /usr/local/ tar -zxvf nginx-1.20.1.tar.gz ``` 4. 进入解压后的Nginx目录。在终端中执行以下命令: ```shell cd nginx-1.20.1/ ``` 5. 配置Nginx。在终端中执行以下命令: ```shell ./configure --prefix=/usr/local/nginx --with-stream ``` 这个命令将会配置Nginx的安装路径为/usr/local/nginx,并启用stream模块以支持负载均衡。 6. 编译并安装Nginx。在终端中执行以下命令: ```shell make && make install ``` 这个命令将会编译并安装Nginx到指定的安装路径。 7. 配置Nginx负载均衡。在安装路径下的conf目录中创建一个新的配置文件,例如loadbalancer.conf,并编辑该文件以配置负载均衡规则。以下是一个简单的负载均衡配置示例: ```shell stream { upstream backend { server backend1.example.com:80; server backend2.example.com:80; } server { listen 80; proxy_pass backend; } } ``` 在这个示例中,我们定义了一个名为backend的上游服务器组,其中包含两个后端服务器backend1.example.com和backend2.example.com。然后,我们创建了一个监听80端口的服务器块,并将请求代理到backend上游服务器组。 8. 启动Nginx。在终端中执行以下命令: ```shell /usr/local/nginx/sbin/nginx ``` 这个命令将会启动Nginx,并开始监听配置文件中定义的端口。 现在,你已经成功搭建了Red Hat服务器上的Nginx负载均衡

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值