在 Nginx 中,日志通常记录在 access.log(访问日志)和 error.log(错误日志)中。如果你想按 IP 地址查询 Nginx 日志,可以根据日志格式使用命令行工具(如 grep、awk)进行过滤。
常见路径:
/var/log/nginx/access.log
/var/log/nginx/error.log
如果你不确定:
nginx -T 2>/dev/null | grep access_log
grep '192.168.1.100' /var/log/nginx/access.log
grep -E '192.168.1.100|10.0.0.5' /var/log/nginx/access.log
grep '192.168.1.100' /var/log/nginx/access.log | wc -l
如果日志格式是默认的:
$remote_addr - $remote_user [$time_local] "$request" ...
awk '$1 == "192.168.1.100"' /var/log/nginx/access.log
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
grep '192.168.1.100' /var/log/nginx/error.log
注意:error 日志不一定包含客户端 IP(取决于错误类型)
grep '10/Apr/2024' /var/log/nginx/access.log | grep '192.168.1.100'
grep '10/Apr/2024:14:' /var/log/nginx/access.log | grep '192.168.1.100'
tail -f /var/log/nginx/access.log | grep '192.168.1.100'
例如:
{"remote_addr":"192.168.1.100","request":"GET /"}
查询方式:
grep '"remote_addr":"192.168.1.100"' /var/log/nginx/access.log
如果你愿意,可以:
我可以给你更精确的命令。