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

在Nginx反向代理后部署EMQ X MQTT Broker失败问题排查

Nginx反向代理EMQ X MQTT Broker失败问题及解决方法

问题场景

尝试在Nginx反向代理后部署EMQ X MQTT Broker,两者运行在同一Docker Compose环境中,但连接失败。

初始配置

Nginx配置(nginx.conf)

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}


stream {
  upstream stream_backend {
     server  127.0.0.1:1883 weight=1;
  }

  server {
      listen 8080;
      #proxy_send_timeout 2h;
      #proxy_read_timeout 2h;
      proxy_connect_timeout 150s;
      proxy_timeout 150s;
      proxy_pass stream_backend;
      proxy_buffer_size 3M;
      tcp_nodelay on;
      #proxy_protocol on;
  }
}

EMQ X配置(emqx.conf)

node {
  name = "emqx@127.0.0.1"
  cookie = "mysecret"
  data_dir = "data"
}

listeners.tcp.default {
  bind = "127.0.0.1:1883"
  proxy_protocol = true
  proxy_protocol_timeout = 30
  enable_authn = false
}


dashboard {
    listeners.http {
        bind = 18083
    }
}

错误信息

连接时EMQ X抛出以下错误:

emqx | 2023-09-26T23:20:47.213039+00:00 [error] supervisor:
'esockd_connection_sup - <0.2858.0>', errorContext:
connection_shutdown, reason: {invalid_proxy_info,<<"GET /mqtt
HTTP/1.1
">>}, offender:
[{pid,<0.3309.0>},{name,connection},{mfargs,{emqx_connection,start_link,[#{enable_authn
=> false,limiter => undefined,listener => {tcp,default},zone => default}]}}]

问题原因

错误信息显示EMQ X收到了HTTP格式的请求而非预期的Proxy Protocol协议数据,核心矛盾在于:

  • EMQ X配置中开启了proxy_protocol = true,要求连接携带Proxy Protocol头
  • 但Nginx配置注释掉了proxy_protocol on;,未发送对应协议头,导致EMQ X无法解析连接信息,判定为无效代理数据

解决方案

有两种适配方案可选:

  1. 启用Proxy Protocol匹配:在Nginx的stream server配置中取消注释proxy_protocol on;,让Nginx发送Proxy Protocol头,与EMQ X配置保持一致
  2. 关闭Proxy Protocol:修改EMQ X配置,移除proxy_protocol = true和proxy_protocol_timeout = 30,让EMQ X直接处理原生MQTT连接

用户采用第二种方案解决了问题,修改后的EMQ X配置如下:

修改后的emqx.conf

node {
  name = "emqx@127.0.0.1"
  cookie = "mysecret"
  data_dir = "data"
}

listeners.tcp.default {
  bind = "127.0.0.1:1883"
}


dashboard {
    listeners.http {
        bind = 18083
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:15:04