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的语法,但是应该可以正常工作.您还可以解析日志文件

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。