Hello! 2013/5/28 付超群: > 最近有个项目想用nginx的access_log来记录日志,然后将日志定期dump到数据仓库中分析,希望实时性稍微好一点。 > > 目前的想法是通过cron每10分钟切割一下nginx的日志(直接mv日志文件),然后通过nginx -s > reload来重新生成日志文件,不知道这种方式对一个频繁访问的站点是否有影响? > nginx -s reload 便是发送 HUP 信号让 nginx 重新加载配置,对于你这里的需求有些过了。这里你其实需要的是在 mv 之后向 nginx master 进程发送 USR1 信号,让 nginx 重新打开日志文件。 更多细节见这里: http://wiki.nginx.org/CommandLine > 还有一种做法是每次读取整个日志文件,然后echo '' > access_log 清空,这样不需要reload nginx,是否妥当? > 这种做法不妥,因为清空老文件并不会让已经打开的文件句柄自动 seek 到文件开头。 同时抄送给 openresty 中文邮件列表:https://groups.google.com/group/openresty 推荐加入此列表并在那里交流这样的技术细节,谢谢合作! Best regards, -agentzh
Hello! 2013/5/28 付超群: > 最近有个项目想用nginx的access_log来记录日志,然后将日志定期dump到数据仓库中分析,希望实时性稍微好一点。 > > 目前的想法是通过cron每10分钟切割一下nginx的日志(直接mv日志文件),然后通过nginx -s > reload来重新生成日志文件,不知道这种方式对一个频繁访问的站点是否有影响? > nginx -s reload 便是发送 HUP 信号让 nginx 重新加载配置,对于你这里的需求有些过了。这里你其实需要的是在 mv 之后向 nginx master 进程发送 USR1 信号,让 nginx 重新打开日志文件。 更多细节见这里: http://wiki.nginx.org/CommandLine > 还有一种做法是每次读取整个日志文件,然后echo '' > access_log 清空,这样不需要reload nginx,是否妥当? > 这种做法不妥,因为清空老文件并不会让已经打开的文件句柄自动 seek 到文件开头。 同时抄送给 openresty 中文邮件列表:https://groups.google.com/group/openresty 推荐加入此列表并在那里交流这样的技术细节,谢谢合作! Best regards, -agentzh --