Zum Inhalt springen

Apache/HTTP/Reverse proxy

Aus Foxwiki

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

Typische Implementierung

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

  1. https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html


TMP