docker-compose 运行nginx容器后,无法打印日志的问题排查

问题描述:自己使用docker-compose 运行nginx容器后,某一天在修改nginx的配置文件,将其拆分为主配置文件和其他配置文件,以便于学习。

可是某一天自己却发现再次访问自己个人的服务器时,发现nginx已经不打印日志啦,这就很尴尬啦,到底是怎么回事呢?

image

 不管如何访问,都看不到对应的日志信息,这就很麻烦啦。然后开始排查问题。

 

排查方向:(1)自己首先考虑到有没有可能是nginx配置文件改动之后出现的问题?

自己先检查了一遍没问题,nginx还能够跑起来,服务还能够访问,但是日志信息看不了。

尝试重启nginx服务,发现问题没有解决-

# 先停止并删除该服务的容器

docker compose rm -f web

# 再单独启动它(会应用新配置)

docker compose up -d web

 

(2)让AI工具帮忙查看配置是否正确,没问题,全部正确.

 

(3)在nginx主配置文件中设置日志的路径,重启nginx,发现没有解决。

 

(4)排查权限问题。

执行之后,重启nginx容器,问题依然没有解决。

sudo chown -R 101:101 /opt/u01/exam/nginx/log

sudo chmod -R 755 /opt/u01/exam/nginx/log

 

(5)# 查看 Nginx 进程是否在跑

docker compose exec nginx ps aux

# 查看监听端口
docker compose exec nginx netstat -tuln | grep ':80\|:443'

发现没问题-

 

(6) 测试配置 命令

docker compose exec nginx nginx -t

 

查看 完整生效配置

# 输出所有合并后的配置(包括 include 的文件)

docker compose exec nginx nginx -T

 

筛选输出结果

 docker compose exec nginx nginx -T 2>/dev/null | grep -E "access_log|error_log"

image

 

最终找到问题,在其他配置文件中,将日志配置文件的路径重置啦。

 

总结:在nginx配置文件中,使用主、从配置文件时,一定要注意后面的配置会覆盖掉前面的配置文件。

遇到问题后,使用阿里巴巴地 千问 AI工具来进行排查问题,效果非常好,它会给出一些非常好的排查思路和解决办法.

 

 

posted @ 2025-12-03 08:58  一只爱阅读的程序员  阅读(15)  评论(0)    收藏  举报