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

Docker部署的Nginx Proxy Manager仅HTTPS模式下出现502 Bad Gateway错误求助

解决Nginx Proxy Manager(Docker环境)HTTPS转发502错误的问题

嘿,我来帮你搞定这个NPM的HTTPS转发问题!先看你给出的错误日志:

2022/01/09 11:43:57 [error] 1636#1636: *21857 SSL_do_handshake() failed (SSL: error:1408F10B:SSL routines:ssl3_get_record:wrong version number) while SSL handshaking to upstream...

这个错误的核心原因很明确:你的NPM正在尝试用HTTPS协议和上游目标容器(192.168.178.35:6595)建立连接,但那个容器实际上只提供HTTP服务,根本不支持SSL/TLS握手,所以才会出现SSL版本不匹配的错误,最终返回502 Bad Gateway。

最直接的解决方案(推荐)

既然上游容器只支持HTTP,我们只需要调整NPM的转发协议,让它用HTTP和上游通信,同时保持NPM对客户端提供HTTPS服务(这就是反向代理里的「SSL终止」模式,也是最常用的配置):

  • 登录NPM的Web管理后台
  • 找到sub.domain.de对应的代理主机配置
  • 在「Forward Hostname / IP」下方的「Forward Scheme」选项里,把https改成http
  • 保存配置,NPM会自动更新底层的Nginx配置

修改后,你的Nginx配置里的关键行会变成这样:

set $forward_scheme http;
set $server "192.168.178.35";
set $port 6595;

这样一来,NPM会用HTTP和上游容器通信,同时对客户端提供加密的HTTPS服务(用你的Let's Encrypt证书),整个流程就通顺了。

为什么HTTP模式+强制SSL能正常工作?

当你设置为HTTP模式时,NPM默认就是用HTTP转发到上游的,而「强制SSL」只是把客户端的HTTP请求自动重定向到HTTPS,并且在NPM这一层完成和客户端的SSL握手——上游容器根本不需要处理SSL,所以不会出问题,这才是正确的配置方式。

如果上游确实需要HTTPS转发怎么办?

如果你确认上游容器应该支持HTTPS(比如容器本身配置了SSL证书),那你需要检查这几点:

  • 先在NPM所在的服务器上用命令测试上游的HTTPS服务是否正常:curl -v https://192.168.178.35:6595,看是否能完成SSL握手
  • 如果上游用的是自签证书,需要在NPM的代理配置里开启「SSL Verification」的跳过选项,或者把自签证书导入NPM的信任列表
  • 检查上游容器的防火墙/安全组,是否允许NPM所在服务器访问6595端口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 09:12:46