最近发现部署在腾讯云上的 Nginx Proxy Manager(简称 NPM)突然无法登录了,页面直接提示 "Bad Gateway"。查阅了大量资料后,终于定位到了问题的根源,今天就来分享一下这个新版本下的极简解决方案。

问题现象

  • 访问 NPM 管理界面时显示 Bad Gateway

  • 容器日志中可能出现网络超时或 API 调用失败的错误

  • 登录接口无响应或返回 502 错误

问题根源

经过排查发现,这个问题并非配置错误,而是网络环境导致的。NPM 在启动时会尝试调用 AWS 的接口获取 IP 地址段信息,但部分国内云服务商(如腾讯云、阿里云等)对 AWS 的某些接口进行了屏蔽或限制,导致 NPM 无法完成初始化,最终表现为 Bad Gateway。

解决方法

只需在启动容器时添加一个环境变量即可彻底解决这个问题:

environment:
  - IP_RANGES_FETCH_ENABLED=false

这个配置会告诉 NPM 跳过 AWS IP 地址段的获取过程,直接启动服务,完全规避了网络屏蔽问题。

Docker Compose 完整示例:

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      - IP_RANGES_FETCH_ENABLED=false
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt