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的语法,但是应该可以正常工作.您还可以解析日志文件
标签:readfile,nginx,php 来源: https://codeday.me/bug/20191120/2047417.html