As condições / regras do mod_rewrite podem ser executadas em ordem aleatória?

4

Eu tenho algumas regras de reescrita mod que testam a presença de um arquivo em várias montagens do NFS e gostaria que os testes ocorressem aleatoriamente, como uma forma muito rudimentar de distribuir a carga.

Por exemplo:

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]

Tanto quanto eu entendi mod_rewrite Apache irá procurar o arquivo em / mnt / mount1, então mount2, mount3 e assim por diante.

Posso randomizar isso em cada solicitação? Entendo que este é um pedido estranho, mas preciso de uma solução criativa para algum tempo de inatividade imprevisto.

Em uma nota lateral, preciso redeclarar RewriteCond %{REQUEST_URI} ^/(.+)$ cada vez como eu fiz?

Obrigado

    
por Tom 03.07.2012 / 21:53

2 respostas

0

Acho que encontrei um recurso no mod_rewrite que pode realizar isso: RewriteMap prg

link

    
por 04.07.2012 / 02:03
2

Como sugestão, você pode fazer um cron job que altere o arquivo com as reescritas com outro arquivo de configuração com as condições de reescrita em ordem diferente. Você pode executar esse cron job a cada minuto e ter diferentes arquivos de configuração para substituí-lo.

    
por 03.07.2012 / 22:22