- 新增network-config-guide.md网络配置指南 - 新增nginx-config-guide.md Nginx配置指南 - 新增nginx-fix-guide.md Nginx修复指南 - 新增nginx.conf示例配置
2.3 KiB
2.3 KiB
Nginx 配置调整指南
问题说明
根据 docker-compose.yml 配置:
- 服务名:
api - 容器名:
life-echo-api-prod - 网络名:
life-echo-network - 端口映射:
8000:8000
原配置中使用的是 lifecho-api:8000,需要根据实际部署方式调整。
配置方案
方案 1:Nginx 在同一个 Docker Compose 网络中(推荐)
如果 nginx 容器也在 life-echo-network 网络中,使用服务名:
upstream lifecho_api_backend {
server api:8000;
}
如何实现:
- 在 nginx 的 docker-compose 配置中添加网络:
services:
nginx:
# ... 其他配置
networks:
- life-echo-network
networks:
life-echo-network:
external: true # 使用已存在的网络
方案 2:Nginx 在外部容器但连接到同一网络
如果 nginx 容器连接到 life-echo-network 网络,可以使用容器名:
upstream lifecho_api_backend {
server life-echo-api-prod:8000;
}
如何实现:
# 将 nginx 容器连接到网络
docker network connect life-echo-network <nginx-container-name>
方案 3:Nginx 在主机上(通过端口映射)
如果 nginx 直接运行在主机上,使用本地端口:
upstream lifecho_api_backend {
server 127.0.0.1:8000;
}
这是最简单的方案,因为 docker-compose.yml 已经将容器的 8000 端口映射到主机的 8000 端口。
推荐配置
根据最常见的部署场景,推荐使用方案 1(服务名),因为:
- 更灵活,不依赖容器名
- Docker Compose 会自动处理服务发现
- 如果容器重启,服务名保持不变
验证配置
配置完成后,测试连接:
# 测试健康检查端点
curl https://lifecho.worldsplats.com/health
# 测试 API 端点
curl https://lifecho.worldsplats.com/api/your-endpoint
故障排查
如果连接失败,检查:
- 网络连接:
# 检查容器是否在同一网络
docker network inspect life-echo-network
# 检查容器 IP
docker inspect life-echo-api-prod | grep IPAddress
- 端口映射:
# 检查端口是否映射
docker ps | grep life-echo-api-prod
- Nginx 日志:
# 查看错误日志
tail -f /var/log/nginx/error.log