直接使用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/;  # 改这里!
相关推荐
coppher12 小时前
Ubuntu 22.04 amd64 离线安装 Docker 完整教程
linux·docker
bloglin9999915 小时前
docker logs 如何一直监听日志输出
运维·docker·容器
龙卷风卷云15 小时前
【BUG】Nginx使用upstream后端接口报 400
运维·nginx·bug
说实话起个名字真难啊16 小时前
Docker 入门之网络基础
网络·docker·php
❀͜͡傀儡师16 小时前
使用 Docker 部署 Neko 自托管虚拟浏览器(Firefox)
docker·容器·firefox
Java面试题总结16 小时前
Nginx 配置笔记
运维·笔记·nginx
0xDevNull17 小时前
Linux Docker 安装与使用详细教程
linux·运维·docker
工具罗某人17 小时前
docker compose 部署MySQL InnoDB Cluster + Router 高可用集群-亲测可用
mysql·docker·容器
SpikeKing17 小时前
Server - 服务器 CentOS 安装与配置 Docker
服务器·docker·centos
cyber_两只龙宝17 小时前
【Nginx】Nginx配置负载均衡详解
linux·运维·nginx·云原生·负载均衡