Lighttpd mod_compress gzip Komprimierung

2011-03-26 - 1 Kommentar »

Alle modernen Browser unterstützen mittlerweile die Übertragung von Inhalten in komprimierter Form. Der hierfür eingesetzte gzip Algorithmus ist schnell und auf jeder Plattform verfügbar. Das spart nicht nur Traffic, sondern lässt die Seite auch noch schneller beim User erscheinen. Beim lighttpd gibt es dafür das Modul mod_compress. In aktuellen Apache2 Versionen gibt es mod_deflate. Mod_compress arbeitet dabei etwas anders als mod_deflate. Während bei der Apache Version die komprimierten Daten nicht zwischen gespeichert werden, sondern bei jedem Aufruf neu komprimiert werden, legt lighttpd mit mod_compress die komprimierte Datei in einem Cache Ordner ab. Der Performance Gewinn ist aber nur gering.
Weiterlesen: Lighttpd mod_compress gzip Komprimierung »

Froxlor Debian: The following signatures were invalid: KEYEXPIRED

Wer Froxlor auf Debian zu laufen hat und für die Installation den Debian Mirror benutzt, kennt bestimmt diese Meldung. Sie erscheint wenn man ein aptitude update/apt-get update ausführt.

W: GPG error: http://debian.froxlor.org lenny Release:
The following signatures were invalid: KEYEXPIRED 1296511029
W: You may want to run apt-get update to correct these problems

Ich hatte vor ein paar Wochen nach einer Lösung gesucht und keine gefunden. Nur Bug Reports von Leuten die die gleiche Meldung erhalten haben. Heute habe ich dann doch eine Lösung für das Problem gefunden. Einfach den folgenden Befehl ausführen und der Fehler ist Geschichte.

$ gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring \
/etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring \
/etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg \
--keyserver gpg-keyserver.de --recv-keys 4F9E9BBC

mod_fcgid: HTTP request length exceeds MaxRequestLen (131072)

2011-03-26 - 6 Kommentare »

Wer Apache und PHP per mod_fcgid benutzt, bekommt nach dem Update auf Debian Squeeze ein Problem mit Dateiuploads im Browser. Das kennt man ja bereits wenn man z.B. in PhpMyAdmin eine große Datei hoch laden will, aber in diesem Fall ist nicht PHP Schuld, sondern die Apache Config. Man erkennt auch gleich den Unterschied zum normalen PHP max_filesize Fehler, den man erhält sehr schnell einen 500 Internal Server Error. Ein Blick in das error_log zeigt dann auch gleich den Grund.

mod_fcgid: HTTP request length 132735 (so far) exceeds MaxRequestLen (131072)

Stellt sich raus das der Wert MaxRequestLen in Lenny noch auf 1GB stand und durch das Update des Apache in Squeeze nun auf 131072 Byte (128KB) steht. Kein Problem, den Wert kann man ohne Probleme erhöhen. Das macht man in der /etc/apache2/mods-available/fcgid.conf. Dort fügt man den Wert FcgidMaxRequestLen hinzu und setzt den Wert auf die gewünschte Größe. In diesem Beispiel auf 128MB. Man sieht auch gleich eine andere Änderung zur Lenny Version, den die Fcgid Parameter haben einen Prefix bekommen. Einige Namen haben sich auch komplett verändert. Eine Liste gibt es hier. Die alten Namen funktionieren noch, sind aber deprecated.

<IfModule mod_fcgid.c>
    ...
    FcgidMaxRequestLen 134217728
    ...
</IfModule>

Die Größe sollte mit den betreffenden Werten aus der php.ini abgestimmt werden, da sonst einer der drei Werte die maximale Größe der Upload beschränkt.

upload_max_filesize = 128M
post_max_size = 128M

Jetzt noch den Webserver reloaden (/etc/init.d/apache2 reload) und schon laufen die Uploads wieder.

Quelle
: mod_fcgid und Anfragenbegrenzungen

Nginx auf Debian Squeeze installieren und konfigurieren

2011-03-20 - 3 Kommentare »

Nginx Logo

Mittlerweile kenne ich die Webserver Apache und lighttpd recht gut und setze beide produktiv auf mehreren Servern ein. Leider gibt es für mich keinen klaren Favoriten den man in jeder Lebenslage empfehlen kann. Ich entscheide eher anhand der anstehenden Aufgaben welchen Webserver ich einsetzen möchte. Dabei spielen natürlich nicht nur die Funktionen eine Rolle, sondern auch die Performance. Deshalb habe ich mir den als sehr performant geltenden Nginx (ausgesprochen: engine x) angesehen und wie der Zufall will auch gleich einen produktiven Anwendungsfall gefunden.

Nginx ist ein high perfomance Webserver und Reverse Proxy. Er ist kostenlos, wird als Open Source entwickelt und kann auch als IMAP/POP3 Proxy eingesetzt werden. Das erste Release wurde 2004 von Igor Sysoev veröffentlicht und seit dem vergrößert sich die Anzahl von Webseiten die auf Nginx setzen ständig. Er wurde aus dem gleichen Grund geschrieben wie lighttpd, nämlich um dem C10K Problem zu begegnen. Mittlerweile ist Nginx für seine hohe Performance, Stabilität, Funktionsvielfalt, einfache Konfiguration und vor allem durch seinen niedrigen Ressourcenverbrauch bekannt.

Anders als traditionelle Webserver, baut nginx nicht auf Threads auf um Anfragen zu verarbeiten. Stattdessen findet eine viel besser skalierende ereignisbasierte (asynchrone) Architektur Verwendung. Diese Architektur benötigt nur eine geringe, und viel wichtiger, vorhersehbare Speichermenge unter Last.
Auch wenn Sie nicht damit rechnen tausende Anfragen verarbeiten zu müssen, können Sie trotzdem von der Leistungsfähigkeit und dem geringen Speicherverbrauch von Nginx profitieren. Nginx skaliert in alle Richtungen: vom kleinen VPS bis zum großen Server-Cluster.

Nginx wird bei vielen bekannten high Traffic Webseiten eingesetzt wie zum Beispiel: WordPress.com, Golem.de, Github.com und Magentocommerce. Ich habe im FireFox das Addon Server Spy installiert, das anzeigt auf welchem Webserver die aktuelle Website läuft und Nginx sehe ich hier immer öfter.
Weiterlesen: Nginx auf Debian Squeeze installieren und konfigurieren »

Linux: Inhalt von Dateien rekursiv nach Suchstring durchsuchen

2011-03-17 - 2 Kommentare »

Sucht man einen bestimmten String in einer Vielzahl an Dateien und Verzeichnissen könnten die folgenden Linux Befehle hilfreich sein.

  • grep: durchsucht eine Datei nach einem Suchstring
  • egrep: funktioniert wie grep, aber kann mit erweiterten regulären Ausdrücken umgehen
  • find: sucht bestimmte Dateien und wendet Befehle auf diese an

grep und egrep

$ grep -r -i 'Suchstring' ./

Es wird in allen Dateien des aktuelle Verzeichnisses (./) und alle Unterverzeichnisse (-r = rekursiv) nach 'Suchstring' gesucht. Es wird nicht auf Groß-/Kleinschreibung geachtet (-i). Hat man als Suchstring einen erweiterten regulären Ausdruck, benutzt man einfach egrep.

find und grep

Es gibt Linux Systeme die das -r bei grep nicht unterstützen. Hier kann man sich mit find behelfen.

$ find ./ -exec grep -i 'Suchstring' /dev/null {} \;

Quelle: grep all files and sub-directories in a directory for a string

Squeeze ist nun auch bei mir angekommen

2011-02-09 - 1 Kommentar »

Heute hat Amazon endlich auch meinen Squeeze geliefert. Ich hab ihn natürlich sofort ausgepackt, "installiert" und ein Foto gemacht. ;)

Debian Squeeze Figurn

Da man einen Squeeze nicht alleine halten soll, habe ich ihm auch gleich noch einen Kumpel mit bestellt. Auf den Wechsel von Lenny zu Squeeze habe ich schon lange gewartet, den Squeeze bekommt man sehr viel einfacher zu kaufen als Lenny... Es gibt auch noch eine sehr coole Squeeze Lego Figur, aber ich wollte einen der quietscht (macht der hier leider nicht).

Squeeze Lego Figur

Debian Squeeze Figur

Ich wollte eigentlich gleich noch einen Wheezy bestellen, aber den gibt es wohl nur in einer vergriffenen Paketedition auf Amazon.com oder als Kuscheltier. Wenn jemand weiß wo man einen Lenny (Fernglas mit den Füßen) oder einen Wheezy (Pinguin mit Schleife als quitsche Version) her bekommt, sagt mir bitte Bescheid.

Debian 6.0 aka Debian Squeeze veröffentlicht

2011-02-06 - 2 Kommentare »

Lang mussten wir auf diesen Tag warten. Nach mehreren verschobenen Terminen wurde heute endlich Debian Squeeze zu Stable und damit freigegeben für den Produktiveinsatz. Die Debian Webseite hat auch ein bisschen Liebe abbekommen und erstrahlt in einem neuen Design, das sich über die unterschiedlichen Debian Seiten erstreckt.

Fans und Entwickler haben auf den zahlreichen Release Partys überall auf der Welt gefeiert und einige haben sich richtig was einfallen lassen. :P

Debian Lenny wird noch ein Jahr supported. Jetzt beginnt also das Warten auf Debian 7 aka Debian Wheezy. :)

Percona Webinar: Managing Big Data with MySQL

Am 10 Februar veranstaltet Percona (MySQL Performance Blog) ein weiteres kostenloses Webinar. Diesmal ist das Thema Managing Big Data with Percona Server, XtraBackup and Tungsten. Die Beschreibung klingt recht interessant:

In this webinar, we’ll teach you how to set up Percona Server, XtraBackup, and Tungsten to manage Terabyte+ databases and scale to millions of transactions a day. We’ll discuss the latest features for high transaction performance like InnoDB buffer pool dump/restore and HandlerSocket, our favorite tricks for backup, restore, and provisioning of large data sets, and how to replicate scalably and safely using Tungsten Replicator with parallel apply.

Ich hab mich einfach mal angemeldet. Wer also am Donnerstag den 10.02. von 19:00 bis 20:00 Uhr CET noch nichts vor hat, kann es sich kostenlos ansehen (Webinar Anmeldung). Wer keine Zeit hat muss auf die Aufzeichnung warten, die hoffentlich wieder veröffentlicht wird.

*Update*: Leider nicht viel neues gelernt... Über den Anmeldelink, kann man sich die Aufzeichnung ansehen, wenn man den möchte.

Minecraft Server erstellen auf einem Debian Server

2011-01-31 - 89 Kommentare »

Minecraft ist ein Sandbox Game der besonderen Art, auch wenn es auf den ersten Blick nicht viel her macht. Alles sieht verpixelt und viereckig aus und das in einer Zeit in der super realistische Computerspiele wie Spielfilme aussehen. Auch wurde kein 100 Millionen Dollar Budget in die Entwicklung oder das Marketing gesteckt, sondern 1 Programmierer reichte aus. Werbung musst nicht gekauft werden, das machen die Fans von sich aus und das kostenlos. Auch auf den zweiten Blick ist noch nicht zu erkennen was Millionen von Spielern begeistert, aber wenn man diese Phase des Kennenlernens überwunden hat erkennt man die Möglichkeiten des Spiels und so gut wie jeder ist in seinem Bann gefangen.

minecraft

Die nächsten Tage sollte man sich am besten nichts vornehmen, denn wer anfängt zu spielen wird Minecraft nicht so schnell aus der Hand legen können. Interessant ist das es keine richtige Zielgruppe zu geben scheint. Von Jung bis Alt, männlich oder weiblich, alle spielen es. Aber worum geht es eigentlich in Minecraft? Das kann einem niemand sagen, den es gibt keine Aufgaben, Quests oder Ziele. Was man aber hat sind eine Menge Möglichkeiten seine Welt so zu formen wie man es gern möchte und Grenzen werden einem nur durch die eigene Fantasie und die gelegentlich auftretenden Bugs gesetzt. Ist eben erst eine Beta.

Der Name verrät schon etwas worum es geht. Um Mine (Bergbau/Abbauen) und Craft (Handwerk/Bauen). Die Welt besteht aus Blöcken die man mit Werkzeugen abbaut. Aus den gewonnenen Ressourcen kann man durch geschicktes kombinieren neue Gegenstände erstellen (Holz -> Planken -> Stäbe + Kohle = Fackeln). Von diesen Rezepten gibt es sehr viele und auf der Suche nach den nötigen Zutaten muss man sich bis zum Grund der Erde graben und gegen Zombies und Skelette kämpfen. Damit man am Leben bleibt, muss man sich um Nahrung vom Schwein kümmern oder wer es vegetarisch mag kann Brot backen. Die eigene Welt wird per Zufallsverfahren erstellt und ist nahezu unendlich in der Breite erweiterbar.

Wie man lesen kann bin ich ein großer Minecraft Fan, auch wenn ich es selbst nicht mehr aktiv spiele. Ich schaue mir aber die reichlich veröffentlichten Let's Play Videos auf Youtube an, die ich jedem empfehlen kann, der einen Eindruck bekommen möchte.
Weiterlesen: Minecraft Server erstellen auf einem Debian Server »

IPTables: IP Adressen bannen mit iptables

2011-01-26 - 6 Kommentare »

Stop Firewall © Bozworthington - Fotolia.com

Mit iptables kann man Regeln definieren die den Netzwerkzugriff für bestimmte IP Adressen erlauben oder verwehren. Definiert man die richtigen Regeln, kann man sein System vor unbefugten Zugriffen schützen und diese schon am Netzwerkinterface abweisen. Vor ein paar Tagen rief mich ein Kollege an dessen Server von einer bestimmten IP Adresse stark belastet wurde, die er gern bannen wollte. Wir redeten kurz darüber wie er dies in seiner Anwendung machen kann, bis ich ihn auf iptables hinwies, was die Sache sehr viel einfacher machte.

Sperrt man jemanden erst in seiner Anwendung (z.B. Webseite), hat dieser User schon längst eine Verbindung zum Server hergestellt und Resourcen belegt. Man sollte deshalb versuchen so früh wie möglich zu filtern und das ist bei einem einfachen Rootserver am Netzwerkinterface. Es gibt noch die Möglichkeit vor dem Server am Router oder einer vorgeschalteten Firewall zu filtern, aber dieser Weg steht nicht jedem zur Verfügung. Hier nun eine kurze Erklärung wie man mit Hilfe von iptables bestimmte IP Adressen bannen kann. Zugrunde liegt ein aktuelles Debian Lenny mit iptables v1.4.2.
Weiterlesen: IPTables: IP Adressen bannen mit iptables »