Вызывали ли nginx внешний скрипт (передавая информацию о запросе) при обслуживании статического файла?

Я настраиваю регистрацию загрузок на сервере, где размещаются записи подкастов. Мы просто хотим легко войти в MySQL файлы, загруженные с отметкой времени и запрашивающие IP-адрес.

Поскольку эти файлы занимают по меньшей мере 150 МБ, я подумал, что использование readfile () было бы плохой идеей (не нужно, чтобы PHP работал все время загрузки файла), и вместо этого файлы должны храниться в другом месте, чем PHP перенаправляет их после входа в систему.

Проблема, конечно, заключается в том, что, как только они будут перенаправлены, они могут скопировать эту перенаправленную ссылку и использовать ее, непреднамеренно обходя журнал загрузки. Я бы хотел этого избежать.

Я думаю, что лучше всего было бы настроить nginx для вызова вторичного сценария перед передачей файла, передавая ему данные запроса для обработки. Есть ли способ сделать это?

3

Решение

Да, вы можете использовать http://wiki.nginx.org/HttpLuaModule

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

Не уверен насчет синтаксиса, передающего IP, но что-то вроде этого должно работать. Вы также можете проанализировать файл журнала

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]