Можно на первой страницы ставить cookie (можно поручить это модулю
userid), а потом - её проверять, без неё не пускать. Далеко не все
догадаются это обойти.
Кстати, это вариант.
Тогда надо вводить БД кук, чтобы можно было видеть какие сессии с какими
куками качают файлы и ограничивать их.
Так же необходимо отслеживать момент окончания закачки, чтобы удалить
запись и пользователь мог приступить к скачке следующего.
Может в nginx есть какой-то реестр подключений по которому можно это
проверять?