在 Debian 上修改 Nginx 日志格式,主要是修改 Nginx 的配置文件,步骤如下:
Debian 下 Nginx 常见路径:
/etc/nginx/nginx.conf/etc/nginx/sites-enabled/编辑主配置文件:
sudo nano /etc/nginx/nginx.conf
在 http { } 块中添加或修改 log_format:
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
log_format json_log escape=json '{'
'"time":"$time_iso8601",'
'"remote_addr":"$remote_addr",'
'"request":"$request",'
'"status":$status,'
'"body_bytes":$body_bytes_sent,'
'"request_time":$request_time,'
'"upstream_time":"$upstream_response_time",'
'"user_agent":"$http_user_agent"'
'}';
编辑站点配置(例如):
sudo nano /etc/nginx/sites-enabled/default
在 server { } 块中修改:
access_log /var/log/nginx/access.log main;
# 或
access_log /var/log/nginx/access.log json_log;
如果有多个
server,每个server都可单独指定
sudo nginx -t
sudo systemctl reload nginx
| 变量 | 含义 |
|---|---|
$remote_addr |
客户端 IP |
$time_local |
本地时间 |
$request |
请求行 |
$status |
HTTP 状态码 |
$body_bytes_sent |
发送字节数 |
$http_user_agent |
UA |
$request_time |
请求总耗时 |
$upstream_response_time |
后端响应时间 |
systemctl 管理 Nginx/var/log/nginx/如果你需要:
可以告诉我你的使用场景,我可以直接给你一份可用配置。