3 Stimmen

Wie kann ich einen Reverse-Proxy mit mod_proxy ohne Umleitung einrichten?

Wie kann ich einen Reverse-Proxy mit mod_proxy einrichten, ohne auf einen anderen Server oder eine andere IP umzuleiten? Dies wird eine virtuelle Host-Umgebung sein. Der Grund, warum ich dies tun möchte, ist, dass mod_proxy die Kommunikation mit dem Browser des Kunden abwickelt und dadurch Webserver-Prozesse frei werden, um die nächste Anfrage zu bedienen, anstatt den Browser des Kunden zu füttern. Dies ist besonders wichtig, wenn Sprachmodule wie mod_php mit MPM Prefork verwendet werden. Der Fluss, den ich zu erreichen versuche, ist: 1. Der Verkehr wird auf www.mydomain.com auf Port 80 aufgelöst. 2. Der Proxy sendet die Anfrage an den Webserver. 3. Der Webserver sendet die Antwort an den Proxy zurück und trennt die Verbindung zum Proxy. 4. Der Proxy füttert den Client-Browser.

Sobald das funktioniert, möchte ich nginx an der gleichen IP-Adresse hinzufügen, aber für Port 81 und Proxy-Bildanforderungen an nginx auf dem gleichen Server. Ich möchte nicht, dass nginx den Proxy handhabt und ich möchte auch kein FCGI. Ich möchte, dass mein Standard-Apache mod_rewrite und .htaccess funktionieren.

Vielen Dank!

3voto

molf Punkte 70728

Einfach auf den localhost auf einem anderen Port umleiten? Hosten Sie Ihre Anwendung auf Port 8080, und verwenden Sie mod_proxy um die Anfragen weiterzuleiten:

ProxyPass /foo http://localhost:8080/foo
ProxyPassReverse /foo http://localhost:8080/foo

Dies kann hilfreich sein, wenn Sie Anwendungsserver haben, die Anfragen bearbeiten, und Sie mehrere Instanzen auf einem einzigen Rechner kombinieren möchten. Sie können einen Port pro Anwendungsserver verwenden.

Ich weiß nicht, ob es wirklich schneller wäre als die Verwendung von mod_php direkt. Auch das Proxing von Anfragen verursacht zusätzlichen Aufwand.

0voto

dvkwong Punkte 533

Stellen Sie sicher, dass Sie auch diese 2 Module laden

LoadModule proxy_module bin/mod_proxy.so 
LoadModule proxy_http_module bin/mod_proxy_http.so

ProxyPass /TeamCity http://localhost/TeamCity
ProxyPassReverse /TeamCity http://localhost/TeamCity

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X