Назад | Перейти на главную страницу

Могут ли условия / правила mod_rewrite выполняться в случайном порядке?

У меня есть несколько правил перезаписи модов, которые проверяют наличие файла на различных монтировках NFS, и я хотел бы, чтобы тесты выполнялись случайным образом, как очень элементарный способ распределения нагрузки.

Например:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(.+)$
RewriteCond /mnt/mount1/%1 -f
RewriteRule ^/(.+)$ /mnt/mount1/$1 [L]
RewriteCond %{REQUEST_URI} ^/(.+)$
RewriteCond /mnt/mount2/%1 -f
RewriteRule ^/(.+)$ /mount2/$1 [L]
RewriteCond %{REQUEST_URI} ^/(.+)$
RewriteCond /mnt/mount3/%1 -f
RewriteRule ^/(.+)$ /mnt/mount3/$1 [L]
RewriteCond %{REQUEST_URI} ^/(.+)$
RewriteCond /mnt/mount4/%1 -f
RewriteRule ^/(.+)$ /mnt/mount4/$1 [L]

Насколько я понимаю, mod_rewrite Apache будет искать файл в / mnt / mount1, затем mount2, mount3 и так далее.

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

Кстати, мне нужно повторно объявить RewriteCond %{REQUEST_URI} ^/(.+)$ каждый раз, как я сделал?

Спасибо

В качестве предложения вы можете сделать задание cron, которое изменяет файл с перезаписью с другим файлом конфигурации с условиями перезаписи в другом порядке. Вы можете запускать это задание cron каждую минуту и ​​иметь разные файлы конфигурации для его замены.

Я думаю, что нашел в mod_rewrite функцию, которая может это сделать: RewriteMap prg

http://httpd.apache.org/docs/current/rewrite/rewritemap.html