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.