Come escludere un URL per Apache Mod_proxy?


23

Abbiamo due server Apache come front-end e 4 server tomcat come back-end configurati usando il modulo mod_proxy come bilanciamento del carico. Ora, vogliamo escludere un singolo URL tomcat dal bilanciamento del carico mod_proxy. C'è un modo o una regola da escludere?

Impostazione bilanciamento proxy:

<Proxy balancer://backend-cluster1>
   BalancerMember http://10.0.0.1:8080 loadfactor=1 route=test1 retry=10
   BalancerMember http://10.0.0.2:8080 loadfactor=1 route=test2 retry=10
</Proxy>

Risposte:


39

Escludete i percorsi da mod_proxy con un punto esclamativo (!) Prima dell'istruzione ProxyPass completa, che manca nell'esempio: sarebbe simile ProxyPass /path balancer://backend-cluster1. Pertanto, per escludere un percorso, aggiungere:

ProxyPass /my/excluded/path !

prima

ProxyPass /my balancer://backend-cluster1

Ma l'URL ha accesso dietro proxyBalancer
Mughil,

Grazie fuzzyfelt, sto chiedendo come escludere l'URL se abbiamo configurato il bilanciamento del proxy. Ho incluso la configurazione del proxy nella domanda
Mughil,

1
Vedi la risposta aggiornata. Aggiungi un'esclusione prima di definire il percorso del proxy.
Alastair McCormack,

2
L'uso di questa risposta ha funzionato benissimo per consentire a LetsEncrypt di localizzare la cartella .well-default predefinita per un host virtuale, quando si utilizza ProxyPass per mostrare lì un server di chat. Aggiungi prima delle altre direttive: ProxyPass /.well-nown!
Professor Falken,

2

Oltre alla risposta di Alastair McCormack: Se usi <Location>, devi inserire l'eccezione di seguito anziché prima:

<Location /my/>
    ProxyPass balancer://backend-cluster1
</Location>

<Location /my/excluded/path/>
    ProxyPass !
</Location>

-2

Potresti mettere una riscrittura sopra le direttive proxy che daranno agli utenti un errore 404 quando provano ad accedere all'URL che vuoi escludere. Dovrai abilitare rewrite_module.

<Location ~ ^/urltoblock($|/)>
   RewriteEngine On 
   RewriteRule .* - [L,R=404]
</Location>

Non ha detto nulla sul voler un errore 404.
user207421
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.