Aktionen

Apache2 als Reverse Proxy und Loadbalancer Beispiel Proxmox

Aus znilwiki

Version vom 22. März 2025, 13:45 Uhr von BLinz (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<u>'''Changelog:'''<u><br> * 22.03.2025 erste Version ---- ==Vorwort== Ein Arbeitskollege hat vor seinen Proxmox-Cluster einen Loadbalancer geschaltet. Dadurch landet er immer auf einen aktiven Knoten, auch bei einem Ausfall.<br> Das fand ich eine prima Idee - und die Gelegenheit mal zu prüfen ob so etwas auch mit einem Apache Reverse Proxy geht - Jupp, kann dieser auch!<br> Wie immer läuft das ganze bei mir unter Ubuntu, in diesem Fall 24.04 LTS, es so…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Changelog:

  • 22.03.2025 erste Version

Vorwort

Ein Arbeitskollege hat vor seinen Proxmox-Cluster einen Loadbalancer geschaltet. Dadurch landet er immer auf einen aktiven Knoten, auch bei einem Ausfall.
Das fand ich eine prima Idee - und die Gelegenheit mal zu prüfen ob so etwas auch mit einem Apache Reverse Proxy geht - Jupp, kann dieser auch!
Wie immer läuft das ganze bei mir unter Ubuntu, in diesem Fall 24.04 LTS, es sollte aber mit allen Apache2 Installationen funktionieren.



Schritt 1: Verschlüsselte Webseite

Ich baue immer erst die Webseite inklusive SSL Zertifikat und Umleitung auf https. Erst wenn diese funktioniert baue ich das Reverse Proxy ein.
Ich nutze eine Apache .vhost Konfiguration bei der jede Webseite seine eigene Konfigurationsdatei hat; https://httpd.apache.org/docs/2.4/vhosts/examples.html
Da ich faul bin nutze ich einen Host mit installiertem ISPConfig: https://znil.net/index.php?title=IONOS_Mietserver_Ubuntu_24.04_-_Einrichtung_ISPConfig#ISPConfig_Installieren Über die GUI von ISPConfig kann ich leicht die Subdomain erstellen und auch gleich ein passendes Zertifikat anfordern lassen.
Das erneuern der Zertifikate funktioniert aber nicht mehr wenn der Reverse Proxy eingebaut ist, deshalb läuft dafür noch ein Cronjob: https://znil.net/index.php?title=IONOS_Mietserver_Ubuntu_24.04_-_Einrichtung_ISPConfig#CronJob_f%C3%BCr_Reverse-Proxy_Seiten Nach wenigen Minuten steht die Webseite:

ClipCapIt-250322-123150.PNG

Wenn eure Webseite so funktioniert, könnte Ihr die Proxy-Geschichte einbauen.


==Apache 2 benötigte Module aktivieren

a2enmod proxy_http proxy_balancer lbmethod_byrequests
systemctl restart apache2.service

Das aktiviert neben dem Proxy-Modul auch das für das Loadbalancing und für die Prüfung ob ein Host erreichbar ist.



Proxy konfigurierten

Dazu bearbeite ich die entsprechende .vhost Datei auf meinem Webserver:

nano /etc/apache2/sites-available/proxmox.znil.net.vhost

Im Abschnitt für Port 443 füge ich folgendes hinzu:

<IfModule mod_proxy_balancer.c>
    <Proxy balancer://proxmox>
        BalancerMember https://192.168.0.231:8006
        BalancerMember https://192.168.0.229:8006 status=+H
        BalancerMember https://192.168.0.230:8006 status=+H
        BalancerMember https://192.168.0.228:8006 status=+H
        ProxySet lbmethod=byrequests
    </Proxy>
</IfModule>
<IfModule mod_proxy.c>
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyErrorOverride On

    SSLProxyEngine On

    SetEnv force-proxy-request-1.0 1
    SetEnv proxy-nokeepalive 1

    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    ProxyPass "/" "balancer://proxmox/"
    ProxyPassReverse "/" "balancer://proxmox/"
</IfModule>