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

如何正确配置Nginx Proxy Manager与Docker容器?解决502错误

排查Nginx Proxy Manager代理MagicMirror出现502 Bad Gateway错误的解决方法

核心问题分析

502错误说明NPM无法成功转发请求到后端的MagicMirror服务,最常见的原因是转发协议不匹配、网络连通性问题或者后端服务未正常启动。

分步排查与解决

1. 修正NPM代理的转发配置(最可能的解决点)

你当前在NPM里配置的转发地址是https://192.168.1.109:8080,但MagicMirror通过npm run server启动的是HTTP服务,并不支持HTTPS。NPM尝试用HTTPS协议去连接一个只提供HTTP服务的端口,会直接导致握手失败,返回502。

修正方法:

  • 打开NPM的代理主机配置页面,将转发地址改为:
    • 方案一(推荐,Docker网络内直接通信):http://magicmirror:8080(因为MagicMirror容器已加入NPM的nginx-proxy-manager_default网络,可直接用容器服务名访问)
    • 方案二:http://192.168.1.109:8080(使用宿主机IP,确保协议为http)
  • 保存配置,等待NPM自动重载配置后,重新访问你的子域名。

2. 验证MagicMirror服务本身是否正常

先确认后端服务没问题:

  • 在本地浏览器访问http://192.168.1.109:8080,如果能看到MagicMirror的界面(或至少收到正常的HTTP响应),说明服务启动正常;
  • 如果本地访问也失败,查看MagicMirror的容器日志排查启动问题:
    docker logs <你的MagicMirror容器名称/ID>
    
    确认日志中是否有Server started on port 8080这类提示,若有错误信息(如依赖缺失、配置文件错误),先修复MagicMirror的启动问题。

3. 检查Docker网络连通性

确认NPM容器和MagicMirror容器在同一网络,且能互相访问:

  • 查看nginx-proxy-manager_default网络中的容器列表:
    docker network inspect nginx-proxy-manager_default
    
    确保输出的Containers节点下同时包含NPM和MagicMirror的容器;
  • 进入NPM容器,测试能否访问MagicMirror服务:
    docker exec -it <你的NPM容器名称/ID> curl http://magicmirror:8080
    
    如果能返回MagicMirror的页面内容,说明网络连通正常;如果提示connection refused或could not resolve host,检查容器的网络关联是否正确。

4. 查看NPM日志定位具体错误

如果以上步骤都没问题,查看NPM的日志获取更详细的错误原因:

docker logs <你的NPM容器名称/ID>

日志中会明确显示502错误的触发原因,比如:

  • connect() failed (111: Connection refused) while connecting to upstream:后端服务未启动或端口不通;
  • SSL_do_handshake() failed (SSL: error:xxx:SSL routines:xxx:wrong version number):转发协议不匹配(用了HTTPS连接HTTP服务)。

额外注意事项

  • 路由器端口转发已确认能将80/443流量转发到宿主机(你能看到OpenResty的502页面,说明这一步已生效);
  • 宿主机防火墙若开启,需确保允许Docker网络的内部通信,或允许宿主机8080端口的入站请求(如果使用宿主机IP转发的话)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 07:02:39