You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx容器转发MQTT Mosquitto Broker连接失败求助

修复Nginx反向代理MQTT Mosquitto的网络协议错误

问题根源

  1. Nginx代理目标错误:Nginx容器内的127.0.0.1指向容器自身,无法访问同Docker网络下的MQTT Broker容器。Docker Compose默认会为服务创建专属网络,服务名可直接作为域名解析到对应容器。
  2. Mosquitto配置挂载路径错误:挂载路径末尾多了个.,导致配置文件无法正确加载,可能引发Broker运行异常。

修复后的配置

Docker Compose配置

version: '3.8'
services:
  mqtt-broker:
    image: eclipse-mosquitto:1.6.13
    container_name: mqtt-broker
    user: "1000:1000"
    ports:
      - 1883:1883
      - 9001:9001
    volumes:
      - ./config/mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf:ro

  mqtt-nginx:
    image: nginx:latest
    container_name: mqtt-nginx
    ports:
      - '1884:1884'
    depends_on:
      - mqtt-broker
    volumes:
      - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro

Nginx配置文件

events {
  worker_connections 1024;
}
stream {
  server {
    listen 1884;
    proxy_pass mqtt-broker:1883;
  }
}

验证步骤

  1. 重启容器使配置生效:
docker-compose down && docker-compose up -d
  1. 重新测试MQTT订阅:
mosquitto_sub -h 127.0.0.1 -p 1884 -t mytopic
  1. 可同时用发布命令验证连通性:
mosquitto_pub -h 127.0.0.1 -p 1884 -t mytopic -m "test message"

内容的提问来源于stack exchange,提问作者Gadour Brahem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:02:56