nginx/1.22.1无法写入自定义access.log日志求助
Nginx自定义访问日志无法写入的排查方向
我安装了nginx/1.22.1,主配置/etc/nginx/nginx.conf里的access.log能正常写入,但/etc/nginx/conf.d/default.conf中配置的自定义访问日志却无法写入。日志文件权限看起来没问题,求排查方向。
相关信息如下:
nginx -v nginx version: nginx/1.22.1 cat /etc/nginx/conf.d/default.conf server { listen 80; server_name www.knowscore.de; access_log /var/log/nginx/default-access-logs.log; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header Proxy pi5; location / { proxy_pass http://127.0.0.1:8008; } } ls -al /var/log/nginx/ total 16 drwxr-xr-x 2 www-data www-data 4096 Nov 17 07:59 . drwxr-xr-x 12 root root 4096 Nov 16 16:03 .. -rw-r----- 1 www-data www-data 4035 Nov 17 08:19 access.log -rw-r--r-- 1 www-data www-data 0 Nov 17 07:59 default-access-logs.log -rw-r----- 1 www-data www-data 78 Nov 16 16:03 error.log
排查方向:
- 验证配置并重载:执行
nginx -t检查配置语法是否正确,无报错后执行nginx -s reload确保配置生效 - 确认请求命中目标server:测试时指定Host头访问,比如
curl -H "Host: www.knowscore.de" http://你的服务器IP,确保请求被该server块处理 - 检查Nginx worker进程用户:执行
ps aux | grep nginx,确认worker进程运行用户为www-data - 查看错误日志详情:检查
/var/log/nginx/error.log,寻找日志写入相关的报错(如SELinux限制、文件系统问题) - 显式指定日志格式:在自定义access_log后添加格式,比如
access_log /var/log/nginx/default-access-logs.log combined;,避免格式缺失导致的隐性问题 - 手动测试写入权限:切换到www-data用户(
su - www-data -s /bin/bash),执行echo "test" >> /var/log/nginx/default-access-logs.log,验证文件是否可写 - 检查目录特殊权限:确认
/var/log/nginx/目录没有设置特殊权限(如chattr),导致无法创建或写入文件
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

