Springe zum Inhalt

Gegenüber Apache ist Nginx ein reiner Datenauslieferer. Anwendungen werden hier nicht wie beim Apache als Module geladen, sondern müssen als eigenständige Prozesse, über FastCGI erreichbar, bereitgestellt werden. Um PHP bereitzustellen kann PHP-FPM verwendet werden. Über FastCGI kann es entweder über einen Unix-Socket oder per TCP/IP angesprochen werden und mit Nginx kommunizieren.

Um die Serverlast im Auge zu behalten kennt man unter Apache die vom Modul mod_status bereitgestellt Statusseite. Unter Nginx kann mit stub_status on; ebenfalls an entsprechender Stelle eine Statusseite eingeschaltet werden. Für PHP-FPM müssen mehre Einstellungen vorgenommen werden. ...weiterlesen "Nginx: PHP-FPM Statusseite einschalten"

13

Vorweg: es gefällt mir gar nicht! Anscheinend ist die Weiterentwicklung von Friendica etwas eingeschlafen. Hintergründe dazu kenne ich leider keine, noch kann ich irgendetwas zu den Gründen aus den diversen Supportgruppen herauslesen.

Friendica machte sich einst auf, ein soziales Netzwerk für jedermann zu werden und sollte irgendwann eine freie und echte Alternative zu den datenhungrigen kommerziellen Anbietern werden. Besonderer Augenmerk wurde auf die Privatsphäre gelegt und der Grundsatz umgesetzt, dass die Daten dem Erzeuger gehören und er selbst über dessen Verbreitung entscheidet. Dabei ist Friendica ein Meister der Interconnection und kann sich mit vielen anderen sozialen Netzwerken verbinden und Beiträge von dort übernehmen, ja zu einigen Netzwerken sogar exportieren. ...weiterlesen "Friendica mit Durststrecke"

2

SSDs haben das Problem, dass die Speicherzellen nur eine begrenzte Anzahl Schreibvorgänge vertragen. Danach sind sie kaputt. Zwar hat jede SSD eine Reserve, die in so einem Fall automatisch benutzt wird, aber die hält eben auch nicht ewig. Durch unachtsame Konfiguration kann man so ganz schnell seine Hardware schrotten.

Im folgenden Beispiel wurden die SMART-Werte zweier im RAID1-Verbund laufender SSDs über ein Jahr lang ausgewertet:

Schön zu sehen ist, wie der Reservespeicherplatz permanent abnimmt. Bei der zweiten SSD sieht man, dass obwohl noch Reservespeicherplatz vorhanden sein sollte, nicht korrigierbare Fehler plötzlich sprunghaft ansteigen.

Die SSDs wurden über das ganze Jahr gesehen durchschnittlich mit 170 kB/s Lesen und 713 kB/s Schreiben "gequält". Auf dem Server lief eine eher kleine Webseite und ein zusätzlicher Dienst, welcher oft viele Daten schreiben musste. Beide verwendeten MySQL, welches mit InnoDB Speicherpages schreibt und zwecks Transaktionssicherung auch immer einen Flush auf den Plattencache machen muss.

Da viele Hoster dedizierte Server mit HDD und SSD nur "entweder oder" anbieten, sollte man vorher genau überlegen, ob eine SSD für die eigene Serveranwendung und auf lange Sicht überhaupt geeignet ist.

10

Primär ist der Einsatz der kostenlosen Let's Encrypt Zertifikate für Webseiten vorgesehen. Wie erzeugt man nun aber ein Zertifikat für einen Mail- bzw. IMAP-Server, auf dem vielleicht gar kein Webserver läuft? Auch das ist in wenigen Schritten möglich. Ich verwende hier certbot zur Kommunikation mit Let's Encrypt, da er für Debian in den Jessie-Backports enthalten ist.

In der Beschreibung hier verwende ich <Domain-Name> für alle Stellen, an der die Domain des eigenen Mailservers eingetragen werden muss. ...weiterlesen "Let’s Encrypt Zertifikate für Dovecot und Postfix"

Mit dem WordPress-Plugin Cachify steht eine Lösung zur Verfügung, die ein einfaches Zwischenspeichern von dynamisch erzeugten Webseiten bietet. Die Inhalte können mit unterschiedlichen Methoden zwischengespeichert werden. Unterstützt werden APC, Disk, DB und Memcached (nur mit Nginx). Da ich hier Nginx einsetze, bietet sich Memcached als schnellste Variante an. Wie Cachify und Nginx dann zu konfigurieren sind kann im Cachify-Wiki nachgelesen werden.

Die erfolgreiche Konfiguration läßt sich einfach überprüfen: es wird an das Ende der jeweiligen Webseite ein HTML-Kommentar von Cachify eingefügt. Ist dieser im Quelltext der Seite vohanden, dann wurde die Seite aus dem Cache, bei mir also von Nginx/Memcached ausgeliefert.

<!-- Cachify | http://cachify.de
Memcached @ 08.07.2016 13:25:07 -->

Nach ein paar Tests stellte sich heraus, dass genau eine Seite hier aus dem Blog nicht zwischengespeichert wird. Nach langem Suchen fand ich dann den Grund: der Seitenquelltext ist größer als 1 MB (bedingt durch sehr viele Kommentare auf der Seite) und Memcached speichert in der Standardkonfiguration nur Items bis zu einer Größe von 1 MB.

Ab der Version 1.4.2 von Memcached kann diese Größe konfiguriert werden. Unter Debian 8 fügt man dazu in die Datei /etc/memcached.conf eine neue Zeile mit z.B.

-I 2m

ein. Damit wird die Maximalgröße eines Items auf 2 MB angehoben. Anschließend muss Memcached neu gestartet werden. Mit folgendem Kommando lassen sich die aktuellen Einstellungen eines laufenden Memcached anzeigen:

# echo "stats settings" | netcat localhost 11211
STAT maxbytes 134217728
STAT maxconns 1024
STAT tcpport 11211
STAT udpport 11211
STAT inter 127.0.0.1
STAT verbosity 0
STAT oldest 0
STAT evictions on
STAT domain_socket NULL
STAT umask 700
STAT growth_factor 1.25
STAT chunk_size 48
STAT num_threads 4
STAT num_threads_per_udp 4
STAT stat_key_prefix :
STAT detail_enabled no
STAT reqs_per_event 20
STAT cas_enabled yes
STAT tcp_backlog 1024
STAT binding_protocol auto-negotiate
STAT auth_enabled_sasl no
STAT item_size_max 2097152
STAT maxconns_fast no
STAT hashpower_init 0
STAT slab_reassign no
STAT slab_automove 0
STAT lru_crawler no
STAT lru_crawler_sleep 100
STAT lru_crawler_tocrawl 0
STAT tail_repair_time 0
STAT flush_enabled yes
STAT hash_algorithm jenkins
END
^C

Unter item_size_max ist die neue Einstellung zu erkennen. Alternativ kann auch phpMemcachedAdmin verwendet werden, um den Inhalt der Caches anzuzeigen.