nginx是否在提供静态文件时调用了外部脚本(传递请求信息)?

我正在托管播客录音的服务器上设置下载日志记录.我们只想轻松地将带有时间戳和请求IP地址下载的文件登录到MySQL.

由于这些文件平均至少150MB,我认为使用readfile()是个坏主意(不要让PHP在文件下载的整个过程中都运行),而是必须将文件存储在与PHP不同的位置记录后将它们重定向到.

当然,问题在于,一旦重定向,他们可能会复制并使用该重定向的链接,而无意中绕过了下载日志.我想避免这种情况.

我想我最好的选择是将nginx配置为在提供文件之前调用辅助脚本,然后将请求数据传递给它进行处理.有没有办法做到这一点?

解决方法:

是的,您可以使用http://wiki.nginx.org/HttpLuaModule

location /file {
   content_by_lua 'os.execute("php cli.php ',ngx.var.remote_addr,'")';
}    

不确定传递IP的语法,但是应该可以正常工作.您还可以解析日志文件

上一篇:解决WIN8小凡不能应用的办法!


下一篇:PHP:在特定短语/单词之后搜索文本文件并输出