在Linux系统中,Nginx的日志管理主要包括查看、分析、配置日志文件以及日志轮转等操作。以下是详细的步骤和说明:
nginx.conf
中定义,默认的访问日志位置是/var/log/nginx/access.log
,错误日志位置是/var/log/nginx/error.log
。cat
、tail -f
等查看日志文件内容。例如,tail -f /var/log/nginx/access.log
可以实时查看访问日志。grep
、awk
、cut
等工具对日志进行过滤和处理。例如,grep '404' /var/log/nginx/access.log
可以搜索所有返回404状态码的请求。http
或server
块中,使用access_log
指令配置日志路径和格式。例如:access_log /var/log/nginx/access.log main;
。error_log
指令配置错误日志的路径和级别。例如:error_log /var/log/nginx/error.log warn;
。/etc/logrotate.d/nginx
文件中。/var/log/nginx/*.log {
daily # 每天轮转一次
missingok # 如果日志文件不存在,不报错
rotate 7 # 保留7天的日志文件
compress # 轮转后的日志文件会被压缩
delaycompress # 延迟压缩,以便当前日志文件在轮转后被压缩
notifempty # 如果日志文件为空,则不进行轮转
create 0640 nginx nginx # 新的日志文件权限和属主
postrotate
/bin/kill -USR1 `cat /var/run/nginx.pid` # 通知Nginx重新打开日志文件
endscript
}
logrotate -f /etc/logrotate.d/nginx
命令手动触发日志轮转。awk
和uniq
命令统计每分钟的请求数。例如:awk '{print $4}' /var/log/nginx/access.log | cut -d: -f1-2 | uniq -c
。grep
查找特定IP的请求记录。例如:grep "101.68.34.182" /var/log/nginx/access.log
。awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
。通过以上步骤,可以有效地在Linux系统中管理Nginx的日志,确保服务器的稳定性和安全性。