要开启 Nginx 日志记录,主要是修改 nginx.conf 或对应 server / location 配置,主要涉及 访问日志(access_log) 和 错误日志(error_log)。下面按常见场景说明。
一般情况下,Nginx 默认是开启日志的,只是路径可能不同。
检查配置文件:
nginx -T | grep -E "access_log|error_log"
或查看主配置文件:
vim /etc/nginx/nginx.conf
在 http {} 块中:
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;
}
✅ 含义:
log_format:定义日志格式access_log:指定日志文件路径和格式在 server {} 或 location {} 中:
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/example.access.log main;
location / {
root /usr/share/nginx/html;
}
}
error_log /var/log/nginx/error.log warn;
| 级别 | 说明 |
|---|---|
| debug | 调试(不建议生产) |
| info | 信息 |
| notice | 通知 |
| warn | 警告(常用) |
| error | 错误 |
| crit | 严重 |
✅ 推荐生产环境:
error_log /var/log/nginx/error.log warn;
nginx -t
systemctl reload nginx
# 或
nginx -s reload
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
mkdir -p /var/log/nginx
chown -R nginx:nginx /var/log/nginx
access_log off;
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent';
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
}
如果你愿意,可以告诉我:
我可以帮你写一份 定制化日志配置。