Frage Wie man eine URL für Apache Mod_proxy ausschließt?


Wir haben zwei Apache Server als Front-End und 4 Tomcat Server als Back-End konfiguriert mit mod_proxy Modul als Load Balancer. Nun möchten wir eine einzelne Tomcat-URL vom mod_proxy Load Balancer ausschließen. Gibt es eine Möglichkeit oder eine Regel auszuschließen?

Proxy-Auswuchtungseinstellung:

<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>

18
2018-06-25 13:27


Ursprung




Antworten:


Sie schließen Pfade von mod_proxy mit einem Ausrufezeichen (!) Vor Ihrer vollständigen ProxyPass-Anweisung aus, die Ihrem Beispiel fehlt - es würde ungefähr so ​​aussehen ProxyPass /path balancer://backend-cluster1. Um einen Pfad auszuschließen, fügen Sie daher Folgendes hinzu:

ProxyPass /my/excluded/path !

Vor

ProxyPass /my balancer://backend-cluster1

32
2018-06-25 17:00



Aber die URL Zugriff hinter dem ProxyBalancer haben - Mughil
Hallo @ Mughil, bitte umformuliere deinen Kommentar. Vielen Dank - Alastair McCormack
Danke fuzzyfelt, ich frage, wie man die URL ausschließt, wenn wir den Proxy Balancer konfigurierten. Ich habe die Proxy-Konfiguration in die Frage aufgenommen - Mughil
Siehe aktualisierte Antwort. Fügen Sie einen Ausschluss hinzu, bevor Sie den Pfad zum Proxy-Pass definieren. - Alastair McCormack
Die Verwendung dieser Antwort funktionierte hervorragend, um LetsEncrypt in den Standardordner für einen virtuellen Host zuzulassen, wenn ProxyPass verwendet wird, um dort einen Chat-Server anzuzeigen. Addiere vor den anderen Direktiven: ProxyPass /.well-known! - Professor Falken


Neben Alastair McCormack Antwort: Wenn Sie verwenden <Location>, müssen Sie die Ausnahme unten statt vorher einfügen:

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

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

0
2017-08-22 14:58





Sie könnten eine Neuschreibung oberhalb der Proxy-Direktiven einfügen, die Benutzern einen Fehler 404 geben, wenn sie versuchen, auf die URL zuzugreifen, die Sie ausschließen möchten. Sie müssen rewrite_module aktivieren.

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

-2
2018-06-25 16:49



Er sagte nichts über einen 404 Fehler. - user207421