Apache/HTTP/Reverse proxy
Apache/HTTP/Reverse proxy - Apache-Reverse-Proxy

Beschreibung
- HTTP(S)-Anforderungen an andere Computer weiterleiten
Apache kann als Reverse-Proxy verwendet werden
- Vorteile
Sicherheit | Apache-Instanz kann in eine DMZ gestellt und der Welt ausgesetzt werden, während die Webserver ohne Zugriff auf die Außenwelt dahinter sitzen können |
Last reduzieren | Sie können die Last auf den Webservern mit verschiedenen Methoden reduzieren, z. B. Web-Caching am Proxy, Lastausgleich und Ablenkung des Datenverkehrs für ungültige Anforderungen |
Failover |
Apache httpd (wie auch die meisten anderen Webserver) ist nicht nur ein "einfacher" Webserver, der Endbenutzern statische und dynamische Inhalte bereitstellt, sondern kann auch als Reverse-Proxy-Server fungieren, der auch als "Gateway"-Server bezeichnet wird
In solchen Szenarien generiert oder hostet httpd selbst keine Daten, sondern der Inhalt wird von einem oder mehreren Backend-Servern bezogen, die normalerweise keine direkte Verbindung zum externen Netzwerk haben
- Wenn httpd eine Anfrage von einem Client erhält, wird die Anfrage selbst an einen dieser Backend-Server weitergeleitet, der dann die Anfrage bearbeitet, den Inhalt generiert und diesen Inhalt dann an httpd zurücksendet, das dann die eigentliche HTTP-Antwort an den Client generiert
Es gibt zahlreiche Gründe für eine solche Implementierung, aber im Allgemeinen sind die typischen Gründe Sicherheit, Hochverfügbarkeit, Lastverteilung und zentralisierte Authentifizierung/Autorisierung
Verwandte Module | Verwandte Anweisungen |
---|---|
- Bei diesen Implementierungen ist es von entscheidender Bedeutung, dass das Layout, das Design und die Architektur der Backend-Infrastruktur (die Server, die die Anfragen tatsächlich bearbeiten) isoliert und von außen geschützt sind
- Für den Client ist der Reverse-Proxy-Server die einzige Quelle für alle Inhalte
Anwendung
Konfiguration
Sobald diese Module aktiviert sind, können wir mit der Bearbeitung der Apache-Konfiguration beginnen
- Die Speicherorte variieren je nach Distribution
- Bei RHEL-basierten Distributionen ist dies Ihre httpd.conf
- Für Debian-basierte Sites verfügbar / Standard
VirtualHost
Erstellen Sie in Ihrem VirtualHost-Tag ein Location-Tag das dem externen Pfad entspricht, den Sie verwenden möchten
Beispiel /
<Location />
# commands go here
</Location>
- Location
Hinzufügen
- ProxyPass
- ProxyPassReverse
gefolgt von der Site-Adresse, die das Ziel des Proxys sein wird
- Zugriff ermöglichen
ProxyPass http://mywebsite.foxtom.net/
ProxyPassReverse http://mywebsite.foxtom.net/
Order allow,deny
Allow from all
- Extras
Fügen Sie außerhalb der location-Standort-Tags oben auf dem virtuellen Host einige Extras hinzu
ProxyHTMLStripComments on
ProxyRequests off
SetOutputFilter proxy-html
ProxyHTMLDoctype XHTML
- SSL-Datenverkehr
SSL-Datenverkehr als Proxy verwenden
SSLProxyEngine on
- Starten Sie Apache neu
Starten Sie Apache neu oder laden Sie die Einstellungen neu, damit die Änderungen wirksam werden
sudo systemctl restart apache2 reload
Beispiel
- Apache Reverse Proxy VirtualHost
VirtualHost, der Port 80 überwacht
- Akzeptiert Anforderungen, die mit www.foxtom.net übereinstimmen
- leitet Anforderungen an website.foxtom.net weiter
<VirtualHost *:80>
ServerAdmin administrator@foxtom.net
ProxyRequests off
DocumentRoot /var/www
SSLProxyEngine on
ProxyPreserveHost On
ServerName www.foxtom.net
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg
LogLevel error
<Location />
ProxyPass http://mywebsite.foxtom.net/
ProxyPassReverse http://mywebsite.foxtom.net/
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Anhang
Siehe auch
Dokumentation
Links
Weblinks