Docker 部署宝塔面板 Nginx 反向代理 502 踩坑实录

Docker 部署宝塔面板 Nginx 反向代理 502 踩坑实录

一、问题描述

最近在使用 Docker 部署宝塔面板,配置 Nginx 反向代理宿主机端口服务时,遇到以下问题:

  • 访问 127.0.0.1:20000/api502 Bad Gateway
  • 宿主机直接访问 6688 / 6689 端口正常
  • 日志/页面提示:invalid linklink dead

宿主机端口正常,但容器内 Nginx 代理不通,这是非常典型的 Docker 网络误区。


二、核心原因:99% 的人都错在这里

❌ 错误写法(添加反向代理宝塔默认生成)

nginx 复制代码
proxy_pass http://127.0.0.1:6688;

为什么错?

在 Docker 容器内部:

127.0.0.1 = 容器自己

不是宿主机!

容器访问自己的端口,当然找不到服务 → 直接 502。

三、正确方案:host.docker.internal

✅ 正确写法

nginx 复制代码
proxy_pass http://host.docker.internal:6688;

作用解释

host.docker.internal 是 Docker 官方内置的固定域名作用:让容器内部访问到宿主机

重启nginx即可

四、云服务器没有host.docker.internal

nginx 复制代码
proxy_pass http://host.docker.internal:6688;

替换为:

nginx 复制代码
proxy_pass http://172.17.0.1:6688;

172.17.0.1 = Docker 默认网关

宿主机 ↔ 所有容器 都能通过这个 IP 互相访问

不管 6688 / 6689 都能通

本地能用,云服务器也能用

相关推荐
BullSmall5 小时前
第三方软件安全-Dependency‑Track Docker 部署
安全·docker·容器
harmony&6 小时前
Docker 容器技术从入门到实战:容器、网络、存储与监控全解析
docker·云原生
IT大白鼠9 小时前
Docker 私有仓库管理:Harbor 企业级仓库搭建与镜像全生命周期管理
运维·docker·容器
姚不倒11 小时前
Nginx 反向代理:5 种负载均衡策略与实战
运维·nginx·负载均衡
Achieve前端实验室11 小时前
SSG 预渲染工具站 SEO 优化实践:从零收录到全面修复的 7 个问题
nginx·seo·前端工程化
bgy666612 小时前
从零上手 Docker,容器技术完整入门指南
运维·docker·容器
姚不倒13 小时前
Nginx 虚拟主机:server_name 匹配规则与实战
运维·nginx
hoho_1215 小时前
麒麟V10升级nginx最新版本到1.31.4
java·服务器·nginx
姚不倒16 小时前
Nginx 核心架构:Master-Worker、epoll、热重载深度解析
运维·nginx·架构
pride.li16 小时前
Docker教程-Docker安装与镜像配置
运维·docker·容器