You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nginx请求中获取客户端的日期与时间?

Nginx JSON日志添加请求日期时间的实现方法

完全可行,你只需要修改Nginx的日志格式配置,添加请求时间相关变量即可,具体步骤如下:

  • 找到Nginx配置文件中的日志格式定义
    打开你的Nginx主配置文件(如/etc/nginx/nginx.conf)或站点专属配置文件(如/etc/nginx/sites-available/your-site.conf),定位到log_format指令定义的JSON格式模板。

  • 在JSON模板中添加请求时间字段
    Nginx提供了两个常用的请求时间变量:

    • $time_local:本地时区的请求时间,格式为DD/Mon/YYYY:HH:MM:SS ±ZZZZ(例如10/Oct/2024:14:20:05 +0800)
    • $time_iso8601:ISO 8601标准的UTC时间,格式为YYYY-MM-DDTHH:MM:SS±ZZZZ(例如2024-10-10T06:20:05+00:00)

    将其中一个变量加入你的JSON日志模板,示例如下:
    原日志格式:

    log_format json_log '{"remote_addr": "$remote_addr", "request_method": "$request_method", "request_uri": "$request_uri"}';
    

    修改后(添加本地时间字段):

    log_format json_log '{"remote_addr": "$remote_addr", "request_method": "$request_method", "request_uri": "$request_uri", "request_time": "$time_local"}';
    
  • 验证配置并重启Nginx

    • 先执行配置语法检查:nginx -t,确保无语法错误
    • 检查通过后重启Nginx服务:systemctl restart nginx(适用于systemd系统)或service nginx restart

如果需要拆分时间的具体维度(如单独提取年、月、日),可以用map指令配合正则实现,例如:

map $time_local $request_year {
    ~^(\d{2})/(\w{3})/(\d{4}) $3;
}

之后将$request_year加入日志格式即可,但通常$time_local或$time_iso8601已能满足仪表盘的时间展示需求。

内容的提问来源于stack exchange,提问作者Steve Silva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:47:38