直接使用docker中的nginx

排查步骤(关键)

1️⃣ 确认后端服务是否在容器内可通过 localhost:8080 访问?

⚠️ 这是最常见的问题:

在容器内,localhost:8080 指的是 容器自己,而不是宿主机上的服务。

如果你的后端服务(Spring Boot 等)运行在 宿主机另一个容器 上,那么:

  • proxy_pass http://localhost:8080/; → 会尝试访问 当前 Nginx 容器内部的 8080 端口
  • 但 Nginx 容器里并没有后端服务 → 404 或 502

✅ 正确做法:让 Nginx 容器能访问后端服务

✅ 情况一:后端服务在宿主机上

你需要让容器访问宿主机:

  • 在 Linux 上,使用 host.docker.internal(或 --network=host
  • 修改 proxy_pass
复制代码

Nginx

编辑

复制代码
location /charsming-api/ {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://host.docker.internal:8080/;  # 改这里!
相关推荐
Suchadar36 分钟前
Docker基础命令(二)——数据卷管理端口映射与容器互联
运维·docker·容器
firstacui1 小时前
Docker容器网络管理与容器数据卷管理
运维·docker·容器
XRJ040618xrj1 小时前
Nginx下构建PC站点
服务器·前端·nginx
codeRichLife2 小时前
docker拷贝,导入/导出等常用命令
docker
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.2 小时前
Nginx 平滑升级与回滚超详细指南
运维·nginx
lpruoyu4 小时前
【Docker进阶-01】Docker隔离原理与可视化界面-Portainer
docker
Swift社区5 小时前
Docker 构建 Python FastAPI 镜像最佳实践
python·docker·fastapi
API开发5 小时前
CentOS 单独安装Docker Compose v2
linux·docker·centos·docker compose
hwj运维之路5 小时前
Docker面试题汇总系列
运维·docker·云原生·容器
chao_7895 小时前
双设备全栈开发最佳实践[mac系统]
git·python·macos·docker·vue·全栈