Nginx Proxy Manager 反代本地服务502错误

2024年01月02日 713点热度 0人点赞 0条评论

Nginx Proxy Manager,是一个强大的反向代理开源项目,最近弃了各种国内面板,把反代的任务都交给了他,使用过程中曾经遇到一个问题,记录备忘。

使用官方的docker-compose.yml 搭建后,反代本机其他docker容器只能通过Docker的默认地址172.17.0.1进行反代,反代非docker服务只能反代真实IP,若使用127.0.0.1或localhost或主机名进行反向代理,则会报错502 Bad Gateway。

问题复现

1.官方推荐的docker-compose.yml

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

 

2.反代本机其他docker项目,红框内只有填172.17.0.1才能正常使用,填写常规的127.0.0.1或localhost或主机名,则会报错。

3.反代本机其他非docker项目,红框内只有填真实IP地址才能正常使用,填写常规的127.0.0.1或localhost或主机名,也会报错。

解决方法

排除防火墙因素外,最简单的解决方法,修改官方docker-compose.yml 如下:

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    network_mode: host
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

1.设定网络类型为host

2.删除宿主端口和容器端口的映射,不然容器会运行失败。

这样就可以正常使用127.0.0.1或localhost或主机名进行反代了。

极客角落

分享网络科技应用

文章评论