Ich muss mehrere Web-Anwendungen On-Premise und Off-Site unter einer gemeinsamen intern gehosteten URL integrieren. Die lokalen Anwendungen befinden sich im selben Datencenter wie haproxy, aber die Offsite-Anwendungen sind nur über einen HTTP-Proxy erreichbar, da der Server, auf dem haproxy läuft, keinen direkten Internetzugang hat. Daher muss ich einen http Internet Proxy verwenden, SOCKS könnte auch eine Option sein.Verwenden Sie Haproxy als Reverse-Proxy mit einer Anwendung hinter Internet-Proxy
Wie kann ich Haproxy mitteilen, dass ein Backend nur über einen Proxy erreichbar ist? Ich würde lieber nicht verwenden Sie eine zusätzliche Komponente wie Socksify/Proxifier/Proxychains/tsocks/..., da dies zusätzliche Overhead verursacht.
Dieses Bild zeigt die Komponenten in der Einrichtung beteiligt:
Wenn ich dies auf einer Maschine laufen mit direkter Internetverbindung ich diese Konfiguration verwenden können, und es funktioniert gut:
frontend main
bind *:8000
acl is_extweb1 path_beg -i /policies
acl is_extweb2 path_beg -i /produkte
use_backend externalweb1 if is_extweb1
use_backend externalweb2 if is_extweb2
backend externalweb1
server static www.google.com:80 check
backend externalweb2
server static www.gmx.net:80 check
(Offensichtlich sind dies nicht die URLs, mit denen ich spreche, dies ist nur ein Beispiel)
Haproxy ist in der Lage, die externen Anwendungen und Routen zu überprüfen Verkehr zu ihnen:
In der sicheren Umgebung des Unternehmens ich arbeite ich habe einen Proxy verwenden und haproxy nicht an die externen Anwendungen verbinden. Wie kann ich Haproxy aktivieren, um diese externen Webanwendungsserver hinter einem http-Proxy zu verwenden (keine Authentifizierung erforderlich), während der Zugriff auf diese über eine gemeinsame http-Seite/über den Browser möglich ist?
Ich denke, das ist nicht ganz das, was ich brauche. Ich müsste ein "curl http (s): // myserver.local/foo" machen und das sollte intern eine statische Seite wie "http (s): // www.google.com" * + * die nicht statisch aufrufen Teil der URL, in diesem Fall '/ foo'. Kurz gesagt: Dies sollte Proxy zu "http (s): // www.google.com/foo" umkehren und diesen Code zurückgeben, als ob er von myserver.local selbst geliefert worden wäre. – Marged
Das klingt anders als der ursprüngliche Beitrag. Was Sie wissen wollen, ist ein Host-Header neu geschrieben wie 'http-Antwort ersetzen-Header Host www \ .google \ .com myserver \ .local' Doc: http://cbonte.github.io/haproxy-dconv/1.8/configuration. html # 4.2-http-response – Aleksandar
Ich denke, der wichtigste Punkt ist Haproxy zu einem Proxy verwenden, der Rest ist auch wichtig, aber kommt später – Marged