在Debian環境下管理Nginx日志可以通過以下幾種技巧實現:
sudo apt update
sudo apt install nginx
默認配置文件位于 /etc/nginx/nginx.conf
,可以在其中設置日志文件路徑和格式。
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;
error_log /var/log/nginx/error.log;
}
使用 logrotate
工具進行日志輪轉,避免日志文件過大。
/etc/logrotate.d/nginx
文件,添加以下內容:/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
sudo logrotate -d /etc/logrotate.d/nginx
強制執行日志輪轉:
sudo logrotate -f /etc/logrotate.d/nginx
使用 tail
命令實時查看日志文件:
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
使用 grep
命令搜索特定內容:
sudo grep "ERROR" /var/log/nginx/error.log
awk '{print $4}' /var/log/nginx/access.log | cut -d: -f1-2 | uniq -c
grep "101.68.34.182" /var/log/nginx/access.log
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
根據需要自定義Nginx的訪問日志格式。例如:
http {
log_format custom '$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 custom;
}
通過以上步驟,你可以在Debian系統上有效地管理和監控Nginx日志,確保系統性能和安全性。