Docker 搭建EMQX集群

端口映射

4369->
5369->
6369->
1883->60001,60002,60003
8083->60004,60005,60006
8084->60006,60008,60009
8883->60010,60011,60012
11883->60013,60014,60015
18083->60016,60017,60018

Cluster

下载镜像

sudo docker pull emqx/emqx:v4.0.5

创建虚拟网络

sudo docker network create -d bridge --subnet=172.18.0.0/16 emqx_bridge

启动3个容器

sudo docker run -d --hostname emqx01 --name emqx01 --network emqx_bridge --ip 172.18.0.2 -p 60002:1883 -p 60005:8083 -p 60011:8883 -p 60008:8084 -p 60017:18083 -p 60014:11883 -v /etc/localtime:/etc/localtime:ro emqx/emqx:v4.0.5


sudo docker run -d --hostname emqx02 --name emqx02 --network emqx_bridge --ip 172.18.0.3 -p 60002:1883 -p 60005:8083 -p 60011:8883 -p 60008:8084 -p 60017:18083 -p 60014:11883 -v /etc/localtime:/etc/localtime:ro emqx/emqx:v4.0.5


sudo docker run -d --hostname  emqx03 --name emqx03 --network emqx_bridge --ip 172.18.0.4 -p 60003:1883 -p 60006:8083 -p 60012:8883 -p 60009:8084 -p 60018:18083 -p 60015:11883 -v /etc/localtime:/etc/localtime:ro emqx/emqx:v4.0.5

创建集群

sudo docker exec -it emqx02 sh
bin/emqx_ctl  cluster join [email protected]
exit

sudo docker exec -it emqx03 sh
bin/emqx_ctl  cluster join [email protected]
bin/emqx_ctl cluster status
exit

Nginx代理在适当位置加入下面配置

stream{
        # emqx tcp
        upstream emqxTcp {
                #hash $remote_addr consistent;
                server xxx.com.cn:60001 max_fails=3 fail_timeout=30s;
                server xxx.com.cn:60002 max_fails=3 fail_timeout=30s;
                server xxx.com.cn:60003 max_fails=3 fail_timeout=30s;
        }

        # emqx tcp server
        server {
                listen 1883;
                #proxy_timeout 180s;
                proxy_pass emqxTcp;
        }
}

http {

upstream emqxManage {
        server xxx.com.cn:60016;
        server xxx.com.cn:60017;

        server xxx.com.cn:60018;
}
server {
    listen    18083;
    server_name   xxx.com.cn;
    location / {
        proxy_pass    http://emqxManage;
        index    index.html    index.htm;
    }
}

}

访问测试 http://xxx.com.cn:18083

Docker 搭建EMQX集群_第1张图片

 

你可能感兴趣的:(MQTT)