我有一个PoC,我正在尝试使用nginx作为Web服务器。我感兴趣的是通过电子邮件提醒用户,当达到一定百分比时,比如分配的唯一访问者配额的90%,比如1000,已经达到。
这是我能想到的:
我关心的是:
最初我计划将两个crons放在php中,我会使用file()函数读取nginx的accesslog。
你有更好的替代品吗?或者对这种方法的任何调整?请建议。
答案 0 :(得分:0)
尝试配置access_log
指令以登录到Unix FIFO套接字。使用mknod /path/to/access.log
创建FIFO,并尝试为此FIFO对象配置access_log
指令。
现在,您可以编写一个脚本,打开FIFO并实时读取中的内容,进行数据操作,并根据需要将所需数据插入数据库。< / p>
这将删除每小时磁盘IO突发,并为您提供响应更快的警报。
一个缺点是nginx 可能阻止写入这些访问日志。 (我对此表示怀疑,但这是一种可能性。)您可能希望以比网络服务器稍低nice
的级别运行脚本,以确保始终可以比FIFO更快地从FIFO中提取访问日志条目正在穿上。 (较低的nice
值是较高的优先级。有关详细信息,请参阅nice(1)
。)