Je vois généralement cela avec mod_rewrite:
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://app_cluster%{REQUEST_URI} [P,QSA,L]
Cela signifie "Si un fichier n'existe pas sur le système de fichiers, puis procurez-le via mon cluster mod_proxy_balancer." Sinon, si le fichier existe sur le système de fichiers, il est simplement servi par Apache par rapport à celui défini DocumentRoot
dans votre virtualhost.
Mais ce n'est pas ma façon préférée, principalement parce qu'elle nécessiterait un stat
appel système par demande.
Avec mod_proxy, vous pouvez utiliser ProxyPassMatch
si vous avez une nouvelle version d'Apache ( voir la documentation ). Tel que:
ProxyPassMatch \.(gif|jpe?g|css|js)$ !
Qui utilise le! pour indiquer qu'Apache ne doit pas utiliser de requêtes proxy correspondant à cette expression régulière.
Si vous utilisez une ancienne version d'Apache, vous aurez la ProxyPass
directive à votre disposition, mais elle ne correspond qu'aux préfixes URI (c'est ma méthode préférée actuelle):
ProxyPass /images !
ProxyPass /stylesheets !
Bien sûr, si vous devez faire une correspondance d'expressions régulières comme vous l'avez mentionné ci-dessus, vous pouvez simplement modifier la règle mod_rewrite que j'ai publiée en haut pour annuler une correspondance avec le %{REQUEST_URI}
.
J'espère que cela pourra aider!