ngx_time_init
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_time_init 函数_源码安装nginx 1.24-CSDN博客
定义在 src\core\ngx_times.c
void
ngx_time_init(void)
{
ngx_cached_err_log_time.len = sizeof("1970/09/28 12:00:00") - 1;
ngx_cached_http_time.len = sizeof("Mon, 28 Sep 1970 06:00:00 GMT") - 1;
ngx_cached_http_log_time.len = sizeof("28/Sep/1970:12:00:00 +0600") - 1;
ngx_cached_http_log_iso8601.len = sizeof("1970-09-28T12:00:00+06:00") - 1;
ngx_cached_syslog_time.len = sizeof("Sep 28 12:00:00") - 1;
ngx_cached_time = &cached_time[0];
ngx_time_update();
}
ngx_cached_err_log_time.len = sizeof("1970/09/28 12:00:00") - 1;
设置 ngx_cached_err_log_time.len
的值为字符串 "1970/09/28 12:00:00"
的长度(不包括空字符 \0
)
ngx_cached_err_log_time 用来存储错误日志相关的时间格式
ngx_cached_http_time.len = sizeof("Mon, 28 Sep 1970 06:00:00 GMT") - 1;
设置HTTP协议使用的日期格式长度
格式遵循 RFC 1123 标准
ngx_cached_http_log_time.len = sizeof("28/Sep/1970:12:00:00 +0600") - 1;
设置 HTTP 访问日志时间格式的长度
为 HTTP 日志模块提供一个标准化的时间格式长度
这种格式常用于 HTTP 日志中记录时间,包括日期、时间和时区信息
ngx_cached_http_log_iso8601.len = sizeof("1970-09-28T12:00:00+06:00") - 1;
设置 ISO 8601 时间格式的长度
ngx_cached_syslog_time.len = sizeof("Sep 28 12:00:00") - 1;
设置系统日志时间格式的长度
ngx_cached_time = &cached_time[0];
初始化全局时间缓存指针
将全局变量 ngx_cached_time
指向数组 cached_time
的第一个元素
cached_time
是一个全局数组,用于存储时间的缓存数据
此时
ngx_cached_time->sec=0
cached_time 还未设置
ngx_time_update();
调用 ngx_time_update
函数,首次生成所有时间格式的字符串
ngx_time_update()
会获取当前时间,将其格式化为上述各种时间字符串,并填充到对应的缓存结构中
ngx_time_update-CSDN博客