# Apache Reverse-Proxy – Einrichtung mit dem mod\_proxy-Modul

Durch die Implementierung eines [Reverse-Proxys](https://www.ionos.de/digitalguide/server/knowhow/was-ist-ein-reverse-proxy/ "Was ist ein Reverse-Proxy?") als **zusätzliche Schutzschicht** können Sie die Robustheit Ihrer Webanwendung verbessern und das Risiko von Angriffen minimieren. Der Apache HTTP Server verfügt über viele Module und Erweiterungen, die verschiedene Proxy-Funktionen unterstützen. In unserer Anleitung erklären wir Ihnen Schritt für Schritt, wie Sie einen Apache Reverse-Proxy aufsetzen und konfigurieren können.

## Was ist mod\_proxy?

Apache ist ein bekannter und weit verbreiteter **Open-Source-Webserver**, der für die Bereitstellung von Webinhalten im Internet verwendet wird. Er ist auf vielen Betriebssystemen wie Windows, Linux und macOS verfügbar und kann über Plugins und Module flexibel erweitert werden.

Das mod\_proxy-Modul ermöglicht es dem Apache-Webserver, als Reverse-Proxy zu fungieren, indem es Anfragen an einen anderen Server weiterleitet und die Antwort an den Client zurückgibt. Dies ist nützlich, wenn Sie beispielsweise mehrere Webserver haben und die Last zwischen ihnen verteilen möchten. Dadurch können Sie die Leistung verbessern oder eine **Hochverfügbarkeitsarchitektur** aufbauen.

Apache mod\_proxy besteht aus mehreren Modulen, die alle ihre eigenen Funktionalitäten aufweisen. Hier sind einige der **wichtigsten Module**:

- **mod\_proxy**: Stellt die Kernfunktionalität des Reverse-Proxys bereit und leitet Anfragen an einen anderen Server weiter.
- **mod\_proxy\_http**: Bietet Proxy-Funktionen für HTTP- und HTTPS-Protokolle.
- **mod\_proxy\_ftp**: Besitzt Proxy-Funktionen für das FTP-Protokoll.
- **mod\_proxy\_connect**: für SSL-verschlüsselte Verbindungen
- **mod\_proxy\_ajp**: Dient der Weiterleitung von Anfragen an AJP-fähige Anwendungsserver.
- **mod\_proxy\_wstunnel**: für die Nutzung von Web-Sockets
- **mod\_proxy\_balancer**: Bietet Load-Balancing-Funktionen.
- **mod\_cache**: Unterstützt verschiedene Cache-Methoden.
- **mod\_headers**: zur Modifikation von HTTP-Header-Zeilen
- **mod\_deflate**: Komprimiert HTTP-Antworten.

---

### Tipp

[Linux Hosting](https://www.ionos.de/hosting/linux-hosting "Linux Hosting von IONOS") von IONOS unterstützt eine Vielzahl an Apache-Modulen, mit denen Sie schnell und effektiv Ihren eigenen Apache Reverse-Proxy konfigurieren können. Profitieren Sie zudem von flexibel skalierbarer Performance, DDOS-Schutz und Top-PHP-Features.

---

## Einen Apache Reverse-Proxy aufsetzen: Schritt-für-Schritt-Anleitung

Dieses Tutorial setzt voraus, dass Sie Apache bereits auf Ihrem System installiert haben. Ausführliche Informationen, wie Sie einen [Apache Webserver einrichten](https://www.ionos.de/digitalguide/server/konfiguration/apache-webserver-einrichten-so-wirds-gemacht/ "So installieren Sie den Apache Webserver") können, finden Sie in unserem Ratgeber.

### Schritt 1: Den Paket-Index aktualisieren

Zuerst sollten Sie die **Liste der verfügbaren Pakete** aktualisieren.

Geben Sie folgenden Befehl in ein Terminal ein:

```shell
$ sudo aptitude update
```

Bringen Sie anschließend die installierten Pakete auf Ihrem System auf den neuesten Stand:

```shell
$ sudo aptitude upgrade -y
```

### Schritt 2: Essential Build Tools herunterladen

Als Nächstes installieren wir die **Essential Build Tools**. Hierbei handelt es sich um eine Gruppe von Werkzeugen und Bibliotheken, die zur Erstellung und Kompilierung von Anwendungen auf Linux benötigt werden.

```shell
$ sudo aptitude install -y build-essential
```

### Schritt 3: Module und Abhängigkeiten installieren

Nun können wir die für den Apache Reverse-Proxy benötigten **Module und Bibliotheken** herunterladen und installieren.

```shell
$ sudo aptitude install -y libapache2-mod-proxy-html libxml2-dev
```

### Schritt 4: Module aktivieren

Bevor Sie die Erweiterungen aktivieren, sollten Sie überprüfen, dass sie korrekt installiert wurden. Das folgende Kommando zeigt Ihnen eine Liste der verfügbaren Module an:

```shell
$ a2enmod
```

[![Bild: Ausführen von a2enmod](https://www.ionos.de/digitalguide/fileadmin/_processed_/f/a/csm_a2enmod_20593ea8ba.webp "Ausführen von a2enmod")](https://www.ionos.de/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/a2enmod.png) a2enmod-Befehl im Terminal Bei der Ausführung des Befehls `a2enmod` werden Sie gefragt, welche Module Sie installieren möchten. Sie können die gewünschten Erweiterungen in einem Einzeiler auflisten:

```shell
$ proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html
```

Sie können auch jedes Modul einzeln aktivieren:

```shell
$ a2enmod proxy
$ a2enmod proxy_http
$ a2enmod proxy_ajp
$ a2enmod rewrite
$ a2enmod deflate
$ a2enmod headers
$ a2enmod proxy_balancer
$ a2enmod proxy_connect
$ a2enmod proxy_html
```

Einige Module sind standardmäßig aktiv. Mit `a2enmod` stellen Sie sicher, dass sie wirklich freigeschaltet sind.

### Schritt 5: Die Standardkonfiguration ändern

Um die Proxy-Funktionen des Apache Webservers zu implementieren, müssen wir die Standardkonfigurationsdatei ***000-default.conf** *im Verzeichnis* /etc/apache2/sites-enabled* bearbeiten.

```shell
$ nano /etc/apache2/sites-enabled/000-default.conf
```

Wir richten einen virtuellen Proxy-Host mit den Erweiterungen **mod\_virtualhost und mod\_proxy** ein. Sie können den Code nach Ihren Bedürfnissen anpassen.

```shell
<VirtualHost *:*>
        ProxyPreserveHost On
        # Servers to proxy the connection, or;
        # List of application servers:
        # Usage:
        # ProxyPass / http://[IP Addr.]:[port]/
        # ProxyPassReverse / http://[IP Addr.]:[port]/
        # Example:
        ProxyPass / http://0.0.0.0/
        ProxyPassReverse / http://0.0.0.0/
        ServerName localhost
    </VirtualHost>
```

Drücken Sie `Ctrl` + `X` und `Y`, um die Änderungen zu speichern und den Text-Editor zu schließen.

### Schritt 6: Load-Balancing konfigurieren

Wenn Sie mehrere Backend-Server betreiben, ist es empfehlenswert, die Last mittels **Load-Balancing** zu verteilen.

Sie können hierfür folgenden Code als Vorlage nehmen und in die Standardkonfigurationsdatei einfügen:

```shell
<Proxy balancer://mycluster>
        # Define back-end servers:
        # Server 1
        BalancerMember http://0.0.0.0/
        # Server 2
        BalancerMember http://0.0.0.0/
    </Proxy>
    <VirtualHost *:*>
        # Apply VH settings as desired
        # However, configure ProxyPass argument to
        # use "mycluster" to balance the load
        ProxyPass / balancer://mycluster
    </VirtualHost>
```

### Schritt 7: SSL-Unterstützung einrichten

Wenn Sie [Apache SSL](https://www.ionos.de/digitalguide/server/sicherheit/apache-ssl/ "Apache SSL") für **verschlüsselte Verbindungen und Zertifikate** verwenden möchten, müssen Sie einen zweiten virtuellen Host aktivieren.

```shell
Listen 443
    NameVirtualHost *:443
    <VirtualHost *:443>
        SSLEngine On
        # Set the path to SSL certificate
        # Usage: SSLCertificateFile /path/to/cert.pem
        SSLCertificateFile /etc/apache2/ssl/file.pem
        # Servers to proxy the connection, or;
        # List of application servers:
        # Usage:
        # ProxyPass / http://[IP Addr.]:[port]/
        # ProxyPassReverse / http://[IP Addr.]:[port]/
        # Example:
        ProxyPass / http://0.0.0.0/
        ProxyPassReverse / http://0.0.0.0/
        # Or, balance the load:
        # ProxyPass / balancer://balancer_cluster_name
    </VirtualHost>
```

### Schritt 8: Apache neu starten

Sobald Sie mit der Konfiguration fertig sind, sollten Sie den **Apache-Webserver neu starten**, damit die Änderungen angewendet werden.

```shell
$ service apache2 restart
```

Nun sollte der Apache Reverse-Proxy Anfragen an Ihre Backend-Server weiterleiten.


This is a markdown version of: [https://www.ionos.de/digitalguide/server/konfiguration/apache-als-reverse-proxy-einrichten/](https://www.ionos.de/digitalguide/server/konfiguration/apache-als-reverse-proxy-einrichten/) for AI/LLM consumption.