直接使用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/;  # 改这里!
相关推荐
石小千1 小时前
Ubuntu24.04 安装Docker
运维·docker·容器
scriptsboy1 小时前
Halo Docker 迁移方法
运维·docker·容器
R.lin2 小时前
Docker核心原理详解
运维·docker·容器
Evan芙2 小时前
Nginx 安装教程(附Nginx编译安装脚本)
windows·nginx·postgresql
颜淡慕潇2 小时前
容器生态双核心:Podman与Docker深度对比及实战指南
docker·eureka·podman
头发多的码农3 小时前
jenkins docker ssh发布效率提升
运维·docker·jenkins
起个名字总是说已存在3 小时前
Kylin Linux麒麟环境docker启动容器报错permission denied解决
linux·docker·kylin
invicinble3 小时前
nginx的基本认识
运维·nginx
爆肝疯学大模型3 小时前
http转https,免费快速申请证书并实现nginx配置
nginx·http·https
qinyia3 小时前
通过 Wisdom SSH AI 助手部署和配置 Nginx Web 服务器
人工智能·nginx·ssh