3.0 KiB
3.0 KiB
单节点部署
该项目用于模拟 EMQX 集群环境下的单节点部署。通过 Docker Compose 启动三个 EMQX 实例,并利用 Nginx 实现负载均衡和协议代理,帮助你快速体验 EMQX 集群的基本功能。
目录结构
- api_key.conf: 存放 EMQX API 密钥配置信息,格式为
用户名:密码。 - certs/: 存放 Nginx 使用的 SSL 证书文件,用于支持 TLS/SSL 加密连接。
- docker-compose.yaml: Docker Compose 配置文件,定义了三个 EMQX 实例(emqx1、emqx2、emqx3)及一个 Nginx 服务。
- nginx.conf: Nginx 配置文件,配置了 TCP、TLS、WebSocket、WSS 的代理规则。
- README.md: 本说明文档。
前置要求
- 安装 Docker 和 Docker Compose。
- 确保主机端口未被其他服务占用(如 18083、1883、8883、8083、8084、8888)。
部署步骤
- 将本项目克隆或下载到本地。
- 在命令行中进入
single_node目录:cd single_node - 使用 Docker Compose 启动所有服务:
docker-compose up -d - 检查容器状态和日志,确保各服务正常启动:
docker-compose logs -f - 访问 EMQX Dashboard:
- 打开浏览器,访问 http://localhost:18083
- 默认用户名为
admin,默认密码为admin123456
- 测试 MQTT 连接:
- 使用 TCP 连接测试端口 1883 或 TLS 连接测试端口 8883。
- 使用 WebSocket 连接测试端口 8083 或 WSS 连接测试端口 8084(需支持 SSL)。
文件说明
-
docker-compose.yaml
定义了三个 EMQX 实例,各实例通过环境变量设置节点名称、集群静态种子以及 Dashboard 默认密码。API 密钥文件通过 volume 挂载到容器内指定位置。 -
nginx.conf
配置了 Nginx 的 TCP/TLS 和 WebSocket/WSS 代理。- TCP/TLS:利用 upstream 分发到各 EMQX 实例,支持普通 TCP 连接和 TLS 加密连接。
- WebSocket/WSS:配置了 WebSocket 升级、请求头转发等,确保 MQTT over WebSocket 连接正常工作。
-
api_key.conf
包含 EMQX 服务所需的 API 密钥信息,格式为admin:admin123456。根据实际需要,可修改为自定义值。
更新和扩展
- 若需扩展成多节点部署,可参照其他目录(如 multi_node)的配置进行修改和扩展。
- 若需要更新 SSL 证书,请将新的证书文件替换 certs 目录中的对应文件,并检查 nginx.conf 中的证书路径是否正确。
常见问题
-
容器启动失败或服务异常
检查 docker-compose 文件中的环境变量、网络配置及端口映射是否正确;同时确认主机上的相关端口无冲突。 -
Nginx 代理错误
验证 nginx.conf 文件中的代理和证书配置;确保挂载的证书文件有效且路径正确。