@ShadowHacker

Отдача случайного файла по определённому URL

Можно ли так настроить nginx, чтобы по определённому url при каждом запросе отдавался один случайный статический файлик из заданного набора?
  • Вопрос задан
  • 2725 просмотров
Пригласить эксперта
Ответы на вопрос 5
@rPman
А 'костылей' вида не желаете?
<?php header('Location: '.rand(1000000,9999999)); ?>
Ведь в этом случае файлы и для клиентов останутся статикой, со всеми плюшками кеширования и т.п.

Я проверял, браузеры без проблем открывают все необходимые ресурсы в не зависимости от того, сколько редиректов было сделано для их получения.
Ответ написан
Комментировать
Лучше пересобрать nginx «под себя», это несложно. Когда то решал такую задачу именно через random_index, а потом дописал в модуль set_misc функцию set_random var min max; которой отдавать случайный файл по URL гораздо удобнее. Использовал кстати это для ротации статических заранее сохраненных html блоков.
Сейчас думаем изменить политику ротации (потому что из 5ти блоков рандомно часто подрядо одинаковые показывает). Сделал команду set_rotate var from to; и отправил pull request разработчику модуля set_misc. С помощью этой команды легко делается ротация блоков по порядку, значение последнего показанного блока можно сохранять в Cookies
Ответ написан
Комментировать
iSage
@iSage
Если нгникс собран с wiki.nginx.org/EmbeddedPerlModule то можно им.
Ответ написан
snp
@snp
Простой скрипт на PHP или чём-либо ещё, отдающий X-Accel-Redirect (http://wiki.nginx.org/XSendfile)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы