Docker Compose编排物联网平台后端:Nginx+PHP-FPM+EMQX+InfluxDB一键部署实战
物联网平台后端涉及的服务组件多,手动部署一次就得折腾半天。Nginx做反向代理,PHP-FPM跑业务API,EMQX处理MQTT设备连接,InfluxDB存时序数据,Redis做缓存。每个组件单独装、单独配,环境一换全得重来。Docker Compose能把这套东西用一份YAML文件定义清楚,一条命令拉起来。本文分享沧州虎王科技在物联网平台部署中使用的Docker Compose编排方案,经过生产环境验证,可以直接拿去改。### 整体架构平台后端的服务拓扑:| 服务 | 镜像 | 端口 | 职责 || --- | --- | --- | --- || Nginx | nginx:1.25-alpine | 80, 443 | 反向代理,静态资源,SSL终结 || PHP-FPM | php:8.2-fpm-alpine | 9000 | 业务API,设备管理,数据查询 || EMQX | emqx/emqx:5.4 | 1883, 8083, 18083 | MQTT Broker,设备接入 || InfluxDB | influxdb:2.7 | 8086 | 时序数据存储 || Redis | redis:7-alpine | 6379 | 会话缓存,设备状态 |Nginx对外暴露80/443端口,所有外部请求经过它。设备端MQTT连接走1883端口直达EMQX,Web端WebSocket走Nginx代理到EMQX的8083端口。PHP-FPM只对内部网络开放,不直接暴露。