Kategorie: Apache

Wie man ein hochverfügbares Apache Cluster (inkl. Loadbalancer) aufsetzt

Diese Anleitung veranschaulicht, wie man ein Apache Web Server Cluster, bestehend aus zwei Systemen aufsetzt, das hochverfügbar ist. Vor dem Apache Cluster erstellen wir einen Load Balancer, der eingehende Anfragen auf die beiden Apache Systeme aufteilt. Da wir nicht wollen, dass der Load Balancer ein weiterer „Single Point Of Failure“ wird, müssen wir auch für den Load Balancer eine Hochverfügbarkeit bereitstellen. Daher wird unser Load Balancer tatsächlich aus zwei Load Balancer Systemen bestehen, die sich gegenseitig mittels heartbeat überwachen. Wenn ein Load Balancer ausfällt, übernimmt der anders stillschweigend.

Apache: Erstellen eines Session-kompatiblen Loadbalancers unter Verwendung von mod_proxy_balancer (Debian Etch)

Seit Apache Version 2.1 ist ein neus Modul namens mod_proxy_balancer verfügbar, mit dem Du ein System, auf dem Apache installiert ist, in einen Loadbalancer umwandeln kannst. Dieser Loadbalancer ruft angeforderte Seiten von einem oder mehreren backend Web Servern auf und sendet sie an den Computer des Benutzers. Benutzer gewinnen den Eindruck, dass sie sich nur mit einem Server (dem Loadbalancer) beschäftigen, obwohl hinter dem Loadbalancer eigentlich mehrere Systeme stehen, die die Anfragen des Benutzers ausführen. Mit einem Loadbalancer kannst Du die durchschnittliche Auslastung auf Deinen Web Servern verringern. Eine wichtige Funktion von mod_proxy_balancer ist, dass es Sessions verfolgen kann, was bedeutet, dass es ein Benutzer immer mit dem gleichen backend Web Server zu tun hat. Die meisten Webseiten sind heutzutage Datenbank-basiert mit Benutzer Logins etc. Man würde komische Ergebnisse erhalten, wenn sich ein Benutzer auf einem backend Web Server anmeldet und seine nächste Anfrage dann zu einem anderen backend Web Server gesendet wird, was bedeutet, dass er wieder abgemeldet wird. Das kannst Du mit mod_proxy_balancer verhindern.

Python in Apache2 mit mod_python (Debian Etch) einbetten

Die folgende Anleitung zeigt, wie man mod_python auf einem Debian Etch Server mit Apache2 installiert und nutzt. mod_python ist ein Apache Modul, das den Python Interpreter auf dem Server einbettet. Dieses Modul ermöglicht es, webbasierte Applikationen in Python zu schreiben, die wesentlich schneller als das bekannte CGI ablaufen. Dazu kommen fortgeschrittene Features wie beispielsweise persistente Datenbankverbindungen, die Speicherung von Daten zwischen Seitenaufrufen und der Zugriff auf interne Apache-Funktionen.

Sichere Dein Apache mit mod_security

Diese Anleitung veranschaulicht, wie man mod_security installiert und konfiguriert. mod_security ist ein Apache Modul (für Apache 1 und 2), das Einbruchserkennung und ~prävention für Web Anwendungen bereitstellt. Web Anwendungen sollen von bekannten und unbekannten Attacken, wie zum Beispiel SQL Injection Attacks, Cross-Site Scripging, Path Traversal Attacks etc. geschützt werden.

Bandbreite sparen mit Apache2s mod_deflate

Diese Anleitung veranschaulicht, wie man mod_deflate auf einem Apache2 Web Server installiert und konfiguriert. mod_deflate erlaubt Apache2 Dateien zu komprimieren und sie an Clients (z.B. Browser) zu senden, die komprimierte Inhalte bearbeiten können, wie es die meisten modernen Browser können. Mit mod_deflate kannst Du HTML, Text oder XML Dateien auf ungefähr 20 – 30% ihrer originalen Größe komprimieren, dies spart Deinem Server Bandbreite, was Deine Modem Benutzer glücklicher macht.

Wie konfiguriere ich Apache damit bestimmte Zugriffe nicht im Access Log vermerkt werden

Normalerweise vermerkt Apache alle Zugriffe in seinem Access Log. In bestimmten Fällen kann dies Deine Page View Statistiken verfälschen (wenn Du ein Tool wie Webalizer oder AWStats verwendest, das Statistiken basierend auf Apaches Access Log erzeugt), wenn Du zum Beispiel viele Besuche von Suchmaschinen-Spider oder bestimmten IP Adressen hast (z.B. Deiner eigenen), oder wenn jede Deiner Seiten eine andere Seite von Deiner Webseite (z.B. in einem iframe) mit einschließt (das würde Deine Page Views sofort verdoppeln, was ganz offensichtlich nicht korrekt wäre). Diese Kurzanleitung veranschaulicht, wie man Apaches SetEnvIf Direktive verwendet, um Apache daran zu hindern, solche Zugriffe zu loggen.

Installation von mod_geoip für Apache2 auf Debian Etch

Diese Anleitung veranschaulicht, wie man mod_geoip mit Apache2 auf einem Debian Etch System einrichtet. mod_geoip löst die IP Adresse des Client auf. Dies erlaubt es Dir, Benutzer umzuleiten oder zu blocken, ausgehend von ihrem Land. Du kannst diese Technologie auch für OpenX (früher bekannt als OpenAds oder phpAdsNew) ad Server verwenden um geo targting zu erlauben.

Aufsetzen Eines Hochverfügbaren Load Balancers (Mit Failover und Session Support) Mit Pound Auf Debian Etch

Diese Anleitung erklärt, wie man einen Load Balancer (bestehend aus zwei Systemen) in einer aktiven/passiven Konfiguration mit Pound und keepalived auf Debian Etch aufsetzt. Der Load Balancer sitzt zwischen dem Benutzer und zwei (oder mehreren) backend Apache Web Servern, die den gleichen Inhalt aufweisen. Der Load Balancer verteilt nicht nur Anfragen an die beiden backend Apache Servers, sondern überprüft auch den Zustand des backend Servers. Wenn einer von ihnen ausfällt, werden alle Anfragen automatisch zum verbleibenden backend Server umgeleitet. Zusätzlich überwachen die beiden Load Balancer-Systeme sich gegenseitig unter Verwendung von keepalived. Wenn der Master ausfällt, wird der Slave zum Master, was bedeutet, dass der Benutzer keinerlei Störungen des Dienstes bemerken wird. Pound unterstützt Sessions, das heißt, Du kannst es mit jedem Web Programm verwenden, das Sessions in Anspruch nimmt (wie zum Beispiel Foren, Warenkörbe etc.).