直接使用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/;  # 改这里!
相关推荐
Re_Virtual5 小时前
centos 7环境下构建nginx 1.30
nginx·centos·rpmbuild
风落无尘5 小时前
Stable Diffusion WebUI & ComfyUI 完整安装教程:官方部署+一键整合包+Docker容器化(2026最新)
docker·容器·stable diffusion
CodeMartain10 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器
llrraa201012 小时前
配置docker国内镜像源
运维·docker·容器
华为云开发者联盟13 小时前
告别繁琐操作,华为云码道 + Docker重塑远程开发体验
人工智能·学习·docker·华为云·软件开发·华为云码道
m_1368714 小时前
Docker Desktop WSL2 启动失败:ext4.vhdx 拒绝访问(E_ACCESSDENIED)完整解决方案
docker
tonydf15 小时前
Nginx爆新的RCE漏洞!别担心,平滑升级即可。
后端·nginx
米高梅狮子15 小时前
Ceph 分布式存储 部署
linux·运维·数据库·分布式·ceph·docker·华为云
曹牧15 小时前
Nginx 504
运维·nginx
米高梅狮子16 小时前
Redis
数据库·redis·mysql·缓存·docker·容器·github