Apache2 Workshop Proxy & Load Balancing

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Apache2 Proxy & Load Balancing

  • Apache kann als Reverse Proxy und Load Balancer genutzt werden.
  • Der Proxy schützt Backend-Server und verteilt Lasten effizient.
  • Die Konfiguration erfolgt in /etc/apache2/sites-available/ oder /etc/apache2/mods-available/.

Reverse Proxy einrichten

  • Apache kann Anfragen an Backend-Server weiterleiten.
  • Wichtige Module aktivieren:
  • a2enmod proxy proxy_http
  • Beispielkonfiguration für einen Reverse Proxy:
  • cat /etc/apache2/sites-available/reverse-proxy.conf*
<VirtualHost *:80>
    ServerName proxy.example.com
    ProxyPass / http://192.168.1.100:8080/
    ProxyPassReverse / http://192.168.1.100:8080/
</VirtualHost>
  • Aktivieren und neustarten:
  • a2ensite reverse-proxy
  • systemctl restart apache2

Load Balancing mit mod_proxy_balancer

  • Apache kann Anfragen auf mehrere Backend-Server verteilen.
  • Module aktivieren:
  • a2enmod proxy_balancer proxy_http lbmethod_byrequests
  • Beispielkonfiguration für Load Balancing:
  • cat /etc/apache2/sites-available/load-balancer.conf*
<VirtualHost *:80>
    ServerName balancer.example.com
    <Proxy balancer://mycluster>
        BalancerMember http://192.168.1.101:8080
        BalancerMember http://192.168.1.102:8080
        ProxySet lbmethod=byrequests
    </Proxy>

    ProxyPass / balancer://mycluster/
    ProxyPassReverse / balancer://mycluster/
</VirtualHost>
  • Aktivieren und neustarten:
  • a2ensite load-balancer
  • systemctl restart apache2

SSL für Reverse Proxy nutzen

  • SSL-Termination am Apache-Proxy entlastet Backend-Server.
  • Modul aktivieren:
  • a2enmod ssl
  • Beispiel für HTTPS-Proxy mit Let’s Encrypt:
  • cat /etc/apache2/sites-available/secure-proxy.conf*
<VirtualHost *:443>
    ServerName secure-proxy.example.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    ProxyPass / http://192.168.1.100:8080/
    ProxyPassReverse / http://192.168.1.100:8080/
</VirtualHost>
  • Zertifikat mit Let's Encrypt beziehen:
  • certbot --apache -d secure-proxy.example.com

Aufgaben

  • Richte einen Reverse Proxy für einen internen Dienst ein.
  • Konfiguriere ein Load Balancing zwischen zwei Backend-Servern.
  • Implementiere SSL für den Proxy und teste die sichere Verbindung.

Warum ist Proxy & Load Balancing wichtig?

  • Schutz von Backend-Servern vor direktem Zugriff.
  • Skalierung der Infrastruktur durch Lastverteilung.
  • SSL-Termination verbessert die Sicherheit und Performance.