# Ubuntu服务器Nginx日志级别设置完整教程
Nginx作为高性能Web服务器,日志管理对运维至关重要。本文详细介绍在Ubuntu服务器上配置Nginx日志级别的方法,帮助您优化日志记录策略。
>一、Nginx日志级别概述
Nginx支持多种日志级别,从低到高依次为:
- >
- debug – 调试信息,最详细的日志
- info – 一般信息
- notice – 通知信息(默认级别)
- warn – 警告信息
- error – 错误信息
- crit – 严重错误
- alert – 警报信息
- emerg – 紧急信息
级别越低,记录的内容越详细;级别越高,只记录更严重的问题。
>二、查看当前日志级别
在Ubuntu上,查看Nginx主配置文件:
>cat /etc/nginx/nginx.conf
查找error_log指令,默认配置通常是:
>error_log /var/log/nginx/error.log;
未指定级别时,默认为notice级别。
>三、修改日志级别
>3.1 编辑配置文件
>sudo nano /etc/nginx/nginx.conf
3.2 修改error_log指令
将日志级别添加到配置中:
>
仅记录错误及以上级别
error_log /var/log/nginx/error.log error;
>或记录警告及以上级别
error_log /var/log/nginx/error.log warn;
>调试模式(生产环境慎用)
error_log /var/log/nginx/error.log debug;
3.3 在http/server/location块配置
Nginx支持在不同层级设置日志级别:
>http {
error_log /var/log/nginx/error.log warn;
server {
listen 80;
server_name example.com;
# 此server使用更详细的日志
error_log /var/log/nginx/example_error.log info;
location /api/ {
# API路径单独设置
error_log /var/log/nginx/api_error.log debug;
}
}
}
四、验证并重启
>4.1 测试配置语法
>sudo nginx -t
4.2 重载配置
>sudo systemctl reload nginx
或重启服务:
>sudo systemctl restart nginx
五、访问日志配置
除了错误日志,Nginx访问日志也可自定义:
>http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
}
可关闭特定location的访问日志:
>location /static/ {
access_log off;
}
六、日志轮转配置
Ubuntu默认安装logrotate处理日志轮转,配置文件位于:
>cat /etc/logrotate.d/nginx
自定义轮转策略:
>/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 cat /var/run/nginx.pid
endscript
}
七、生产环境建议
1. 使用warn或error级别 - 减少磁盘I/O和存储空间
2. 开启日志压缩 - 节省存储空间
3. 设置日志轮转 - 防止日志文件过大
4. 监控日志文件 - 使用工具如ELK Stack进行日志分析
5. debug级别仅用于排查问题 - 上线后及时改回生产级别
>八、常见问题排查
>问题1:配置不生效
检查配置语法并确保重启服务:
>sudo nginx -t && sudo systemctl reload nginx
问题2:日志文件权限问题
>sudo chown -R www-data:adm /var/log/nginx/
sudo chmod -R 755 /var/log/nginx/
问题3:磁盘空间不足
检查日志目录大小:
>du -sh /var/log/nginx/
及时清理或调整轮转策略。
---
通过合理设置Nginx日志级别,可以在问题排查和系统性能之间取得平衡,建议根据实际业务需求灵活调整配置。