blog.bartlweb - a technologist's external brain

Apache als Proxy für Webseiten verwenden

Apache lässt sich nicht nur als Webserver sondern auch als Proxy verwenden. In Zusammenhang mit VirtualHosts kann das Proxy Modul dazu verwendet werden, mehrer interne Server über einen Port von Außen erreichbar zu machen.

Angenommen unser Webserver ist unter www.example.com Port 80 erreichbar und unser Testserver intern läuft auf einer zweiten Maschine so müsste dieser nach Außen hin einen anderen Port, z.B. 81, bekommen um erreichbar zu sein.

Die Lösung dafür bietet das Apache Proxy-Modul. Dieses kann anfragen an den eigenen Webserver mittels Proxy an einen anderen weiterleiten.

So wird z.B. unser interner Server 192.168.0.10 (Port kann ebenfalls angegeben werden) mit Hilfe des von außen über den Port 80 erreichbaren Webserver über den virtuellen Host mit der Adresse intern.example.com erreichbar.

Module

Dazu benötigt der Apache folgende beiden Module

  • proxy
  • proxy_http

virtualHost Config

Apache-Config des virtuellen Hosts für oben genanntes Szenario

NameVirtualHost *

<VirtualHost *>
  ServerName intern.example.com

  ProxyRequests Off
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
  ProxyPass / http://192.168.0.10/
  ProxyPassReverse / http://192.168.0.10/
</VirtualHost>

Hinweise

  • am Besten immer Root zu Root mappen und nicht auf Unterverzeichnisse weiterleiten. Dies Funktioniert zwar technisch gibt aber meistens nur Probleme. Am Besten auf Webserver und Zielserver den selben vHost einrichten (Bei Zielserver Domain oder Port ändern).
  • Dem eigentlichen Ziel-Server wird als Host-Adresse natürlich die die im Apacheproxy angegeben ist und nicht die über die der User die Webseite aufruft übergeben. Zu erkennen z.B. am Footer des Apache Directory-Listing.
  • Sind auf der Webseite auf die weitergeleitet wird absolute Links wie zum Beispiel von RealUrl generiert enthalten, so verlässt der Benutzer natürlich die Domain über die die Webseite eigentlich aufgerufen wurde.

Dieser Artikel hat Dir deinen Tag gerettet?

... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? Oder einfach nur Dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Anerkennung honorierst:

Zahlung mit PayPal oder Kreditkarte.

Hinweis zur Verwendung

Die Übermittlung einer Zahlung ist eine persönliche Anerkennung Ihrerseits an den Entwickler (Christian Bartl, Privatperson). Eine Zahlung ist nicht zweckgebunden und es ist keine Gegenleistung zu erwarten. Bitte beachten Sie, dass für eine übermittelte Zahlung keine Quittung ausgestellt werden kann.

Über den Autor

Christian Bartl

Christian Bartl Requirements Engineer
& Solution Architect für Online und Mobile

Als Technologie-Enthusiast und begeisterter Programmierer entwickle ich in meiner Freizeit Websites, Software und IT-Lösungen, die mir selbst und anderen den Alltag vereinfachen.

mehr auf christian.bartl.me

Kommentare

Noch kein Kommentar vorhanden.
Sei der Erste! - Ich freue mich über deine Anmerkung, Kritik oder Frage.

Kommentar schreiben

Der hier angegebene Name wird gemeinsam mit deinem Kommentar auf der Website veröffentlicht.

Deine E-Mail-Adresse wird zur einmaligen Benachrichtigung bei Veröffentlichung des Kommentars genutzt.

Benachrichtigung per E-Mail über Antworten auf meinen Kommentar erhalten.

Bitte tippe die Zahlenkombination "3071" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.