Я настраиваю регистрацию загрузок на сервере, где размещаются записи подкастов. Мы просто хотим легко войти в MySQL файлы, загруженные с отметкой времени и запрашивающие IP-адрес.
Поскольку эти файлы занимают по меньшей мере 150 МБ, я подумал, что использование readfile () было бы плохой идеей (не нужно, чтобы PHP работал все время загрузки файла), и вместо этого файлы должны храниться в другом месте, чем PHP перенаправляет их после входа в систему.
Проблема, конечно, заключается в том, что, как только они будут перенаправлены, они могут скопировать эту перенаправленную ссылку и использовать ее, непреднамеренно обходя журнал загрузки. Я бы хотел этого избежать.
Я думаю, что лучше всего было бы настроить nginx для вызова вторичного сценария перед передачей файла, передавая ему данные запроса для обработки. Есть ли способ сделать это?
Да, вы можете использовать http://wiki.nginx.org/HttpLuaModule
location /file {
content_by_lua 'os.execute("php cli.php ',ngx.var.remote_addr,'")';
}
Не уверен насчет синтаксиса, передающего IP, но что-то вроде этого должно работать. Вы также можете проанализировать файл журнала
Других решений пока нет …