张建平 9adaacb84d feat: 初始化项目结构
添加 README.MD、images目录、single_node目录及其配置文件,multi_node目录及各节点配置。
2025-02-22 18:03:33 +08:00

71 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 单节点部署
该项目用于模拟 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
## 部署步骤
1. 将本项目克隆或下载到本地。
2. 在命令行中进入 `single_node` 目录:
```
cd single_node
```
3. 使用 Docker Compose 启动所有服务:
```
docker-compose up -d
```
4. 检查容器状态和日志,确保各服务正常启动:
```
docker-compose logs -f
```
5. 访问 EMQX Dashboard
- 打开浏览器,访问 [http://localhost:18083](http://localhost:18083)
- 默认用户名为 `admin`,默认密码为 `admin123456`
6. 测试 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 文件中的代理和证书配置;确保挂载的证书文件有效且路径正确。
## 参考资料
- [EMQX 官方网站](https://www.emqx.io)
- [Docker Compose 文档](https://docs.docker.com/compose/)
- [Nginx 官方文档](https://nginx.org)