Acho que encontrei um recurso no mod_rewrite que pode realizar isso: RewriteMap prg
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
Acho que encontrei um recurso no mod_rewrite que pode realizar isso: RewriteMap prg
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.
Tags mod-rewrite apache-2.2