Apache/HTTP/Reverse proxy: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 12: Zeile 12:
|}
|}


== Das interessante Zeug - ProxyPass ==
== ProxyPass ==
 
Um Apache als Reverse-Proxy-Server einzurichten, müssen Sie mod_proxy aktivieren.  
Um Apache als Reverse-Proxy-Server einzurichten, müssen Sie mod_proxy aktivieren . Einige andere gängige Mods, die du möglicherweise brauchst, sind unten aufgeführt


Einige andere gängige Mods, die du möglicherweise benötigst, sind unten aufgeführt
  mod_proxy
  mod_proxy
  mod_http
  mod_http
Zeile 21: Zeile 21:
  mod_html
  mod_html


Um Mods in Ubuntu / Debian zu aktivieren, müssen Sie sicherstellen, dass sie installiert und dann aktiviert sind. Das Installieren und Aktivieren von mod_proxy sieht beispielsweise folgendermaßen aus
Um Module unter Debian zu aktivieren, müssen Sie sicherstellen, dass sie installiert und dann aktiviert sind.  


Das Installieren und Aktivieren von mod_proxy sieht beispielsweise folgendermaßen aus
  apt-get install libapache2-mod-proxy-html a2enmod mod_proxy
  apt-get install libapache2-mod-proxy-html a2enmod mod_proxy


Sobald diese Mods aktiviert sind, können wir mit der Bearbeitung der Apache-Konfiguration beginnen. Die Speicherorte variieren je nach Linux-Distribution. Bei RHEL-basierten Distributionen ist dies Ihre httpd.conf . für Debian-basierte Sites verfügbar / Standard  
Sobald diese Mods aktiviert sind, können wir mit der Bearbeitung der Apache-Konfiguration beginnen
* Die Speicherorte variieren je nach Linux-Distribution
* Bei RHEL-basierten Distributionen ist dies Ihre httpd.conf
* Für Debian-basierte Sites verfügbar / Standard  


Erstellen Sie in Ihrem VirtualHost-Tag ein Location- Tag, das dem externen Pfad entspricht, den Sie verwenden möchten. Für dieses Beispiel verwenden wir /
Erstellen Sie in Ihrem VirtualHost-Tag ein Location- Tag
* das dem externen Pfad entspricht, den Sie verwenden möchten.  


Für dieses Beispiel verwenden wir /
  <Location />
  <Location />
   # commands go here
   # commands go here
  </Location>
  </Location>


innerhalb des Location- Tags die Proxy-Optionen Fügen ProxyPass und Sie ProxyPassReverse hinzu, gefolgt von der Site-Adresse, die das Ziel des Proxys sein wird. Sie benötigen außerdem einige Zeilen, um den Zugriff zu ermöglichen
innerhalb des Location- Tags die Proxy-Optionen Fügen ProxyPass und Sie ProxyPassReverse hinzu, gefolgt von der Site-Adresse, die das Ziel des Proxys sein wird.  


Sie benötigen außerdem einige Zeilen, um den Zugriff zu ermöglichen
  ProxyPass http://mywebsite.jamescoyle.net/
  ProxyPass http://mywebsite.jamescoyle.net/
  ProxyPassReverse http://mywebsite.jamescoyle.net/
  ProxyPassReverse http://mywebsite.jamescoyle.net/
Zeile 41: Zeile 48:


Fügen Sie außerhalb der Standort-Tags oben auf dem virtuellen Host einige Extras hinzu
Fügen Sie außerhalb der Standort-Tags oben auf dem virtuellen Host einige Extras hinzu
  ProxyHTMLStripComments on
  ProxyHTMLStripComments on
  ProxyRequests off
  ProxyRequests off
Zeile 48: Zeile 54:


Wenn Sie SSL-Datenverkehr als Proxy verwenden, müssen Sie außerdem Folgendes hinzufügen
Wenn Sie SSL-Datenverkehr als Proxy verwenden, müssen Sie außerdem Folgendes hinzufügen
  SSLProxyEngine on
  SSLProxyEngine on


Starten Sie Apache neu oder laden Sie die Einstellungen neu, damit die Änderungen wirksam werden
Starten Sie Apache neu oder laden Sie die Einstellungen neu, damit die Änderungen wirksam werden
  service apache2 reload
  service apache2 reload


Sie haben jetzt einen funktionierenden Proxy - alle an gesendeten Anfragen / werden von abgerufen http://mywebsite.jamescoyle.net  
Sie haben jetzt einen funktionierenden Proxy - alle an gesendeten Anfragen / werden von abgerufen http://mywebsite.jamescoyle.net  
Beispiel Apache Reverse Proxy VirtualHost


Das folgende Beispiel zeigt einen Apache VirtualHost, der Port 80 überwacht. Die Konfiguration akzeptiert Anforderungen, die mit dem www.jamescoyle.net Hostnamen übereinstimmen, und leitet die Anforderungen an den Server Back-End- mywebsite.jamescoyle.net weiter
 
== Beispiel Apache Reverse Proxy VirtualHost ==
Das folgende Beispiel zeigt einen Apache VirtualHost, der Port 80 überwacht
 
Die Konfiguration akzeptiert Anforderungen, die mit dem www.jamescoyle.net Hostnamen übereinstimmen, und leitet die Anforderungen an den Server Back-End- mywebsite.jamescoyle.net weiter


  <VirtualHost *:80>
  <VirtualHost *:80>

Version vom 4. November 2024, 11:17 Uhr

Einfaches Beispiel für einen Apache-Reverse-Proxy

Hintergrund

Apache kann als Reverse-Proxy verwendet werden, um HTTP / HTTPS-Anforderungen an andere Computer weiterzuleiten.

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

ProxyPass

Um Apache als Reverse-Proxy-Server einzurichten, müssen Sie mod_proxy aktivieren.

Einige andere gängige Mods, die du möglicherweise benötigst, sind unten aufgeführt

mod_proxy
mod_http
mod_headers
mod_html

Um Module unter Debian zu aktivieren, müssen Sie sicherstellen, dass sie installiert und dann aktiviert sind.

Das Installieren und Aktivieren von mod_proxy sieht beispielsweise folgendermaßen aus

apt-get install libapache2-mod-proxy-html a2enmod mod_proxy

Sobald diese Mods aktiviert sind, können wir mit der Bearbeitung der Apache-Konfiguration beginnen

  • Die Speicherorte variieren je nach Linux-Distribution
  • Bei RHEL-basierten Distributionen ist dies Ihre httpd.conf
  • Für Debian-basierte Sites verfügbar / Standard

Erstellen Sie in Ihrem VirtualHost-Tag ein Location- Tag

  • das dem externen Pfad entspricht, den Sie verwenden möchten.

Für dieses Beispiel verwenden wir /

<Location />
 # commands go here
</Location>

innerhalb des Location- Tags die Proxy-Optionen Fügen ProxyPass und Sie ProxyPassReverse hinzu, gefolgt von der Site-Adresse, die das Ziel des Proxys sein wird.

Sie benötigen außerdem einige Zeilen, um den Zugriff zu ermöglichen

ProxyPass http://mywebsite.jamescoyle.net/
ProxyPassReverse http://mywebsite.jamescoyle.net/
Order allow,deny
Allow from all

Fügen Sie außerhalb der Standort-Tags oben auf dem virtuellen Host einige Extras hinzu

ProxyHTMLStripComments on
ProxyRequests off
SetOutputFilter proxy-html
ProxyHTMLDoctype XHTML

Wenn Sie SSL-Datenverkehr als Proxy verwenden, müssen Sie außerdem Folgendes hinzufügen

SSLProxyEngine on

Starten Sie Apache neu oder laden Sie die Einstellungen neu, damit die Änderungen wirksam werden

service apache2 reload

Sie haben jetzt einen funktionierenden Proxy - alle an gesendeten Anfragen / werden von abgerufen http://mywebsite.jamescoyle.net


Beispiel Apache Reverse Proxy VirtualHost

Das folgende Beispiel zeigt einen Apache VirtualHost, der Port 80 überwacht

Die Konfiguration akzeptiert Anforderungen, die mit dem www.jamescoyle.net Hostnamen übereinstimmen, und leitet die Anforderungen an den Server Back-End- mywebsite.jamescoyle.net weiter

<VirtualHost *:80>
 ServerAdmin administrator@jamescoyle.net
 ProxyRequests off
 DocumentRoot /var/www
 SSLProxyEngine on
 ProxyPreserveHost On
 ServerName www.jamescoyle.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.jamescoyle.net/
  ProxyPassReverse http://mywebsite.jamescoyle.net/
  Order allow,deny
  Allow from all
 </Location>
</VirtualHost>

Tags: Apache 2 httpd mod_proxy ProxyPass ProxyPassReverse Reverse Proxy