你这个问题一般有两种理解,我分别说一下,方便对号入座:
Nginx 访问日志时间默认是这种格式:
10/Oct/2023:12:34:56 +0800
如果你想改成普通时间戳或ISO 格式,可以在 nginx.conf 里改 log_format。
log_format main '$time_iso8601 $remote_addr $request $status';
access_log /var/log/nginx/access.log main;
$time_iso8601 示例:
2023-10-10T12:34:56+08:00
log_format main '$time_local $msec $remote_addr $request';
或者用:
log_format main '$msec $remote_addr $request';
$msec 是带毫秒的时间戳(如 1696907696.123)
nginx -t
systemctl reload nginx
如果你发现日志时间和系统时间不一致,很可能是时区问题。
timedatectl
timedatectl set-timezone Asia/Shanghai
date
systemctl restart nginx
⚠️ 注意:
Nginx 启动时才会读取系统时间/时区,只 reload 有时不会生效。
$time_local 受系统时区影响$time_iso8601 也受系统时区影响如果你能具体说一下:
我可以直接给你一份可用的配置。