Im zweiten Teil geht es um die individuelle Einrichtung der virtuellen Server für nginx.
Server oder virtual hosts? Im Gegensatz zu den “virtual hosts” von Apache spricht man bei nginx von “servern”. Ich möchte das Aufgreifen und nutze im Folgenden einfach nur von “Server” wenn ich von einem individuellen Host oder virtuellem Server spreche. Wie bei Apache werden diese idealerweise in eigenständigen Konfig-Dateien definiert. Hier gibt es verschiedene Vorlieben, ob die Konfig-Dateien unter /etc/nginx/sites-available oder /etc/nginx/conf.
Im Vereinigten Königreich gibt es wohl eine mittelgroße Bank, die, wie sicher viele andere Unternehmen auch, Newsletter verschickt. Was passiert, wenn man als Empfänger bei diesem Newsletter auf “Abmelden” klickt? Folgendes:
Der Klick auf den “Abmelden”-Link ruft einen uralten Webservice auf.
Der Webservice schickt eine E-Mail an einen internen E-Mail-Empfänger, der seit 5 Jahren nicht mehr in der Bank arbeitet.
Diese E-Mail-Adresse konnte man allerdings nicht ändern, da sie im Sourcecode fest angeben wurde (hardcoded) und man den originalen Sourcode zum kompilieren nicht mehr hatte.
In Tableau gibt es die eigentlich sehr nützliche Möglichkeit, Dimensionen beliebig zu kombinieren und in einer Hierarchie zusammenzufassen. Diese Funktion ist sehr intuitiv hat aber einen Haken: Wenn man bei großen Datenmengen und Dimensionen mit hoher Kardinalität einen Drill Down macht, werden die Abfragen nicht nur irrsinnig langsam, je tiefer man kommt. Die Übersicht geht auch komplett verloren.
Um das zu demonstrieren habe ich eine Datenquelle mit 1 Mio. Zeilen und 10 Dimensionen erzeugt.
Diese Abbildung, meine geneigten Freunde, zeigt die Zugriffsversuche für SSH auf meinen Server. Zugegeben: Es ist nicht viel und wird sich vermutlich kaum auf die Performance des gesamten Systems auswirken. Mit diesem Grundrauschen muss aber eigentlich jeder leben, der einen SSH-Dienst über den Standard-Port 22 betreibt.
SSH-Zugriff der letzten 30 Tage
Wenn sich diese Zugriffe nicht auf die Performance auswirken, macht es dann wenigstens aus Sicherheitsgründen Sinn, diese Zugriffe zu unterbinden?
Wenn bei deiner Abschlussarbeit, Masterarbeit, Hausarbeit oder Doktorabeit Qualität mehr zählt als Quantität, dann ist der AbbreViator (tm) für dich genau das richtige. Der AbbreViator (tm) ist für wissenschaftliche und nicht-wissenschaftliche Texte geeigent. Das Werkzeug ersetzt alle Wörter durch Abkürzungen und liefert dir dein komplettes Pamphlet zurück, dass inhaltlich nicht weniger wert ist, als das Original, dafür aber umso kompakter präsentiert werden kann. Natürlich erhälst du auch das passende Abkürzungsverzeichnis dazu, dass du deiner schriftlichen Arbeit dann anfügen kannst.
Lorem Ipsum kennt jeder. Das sind diese lateinisch anmutenden Texte, die man als Platzhalter verwenden kann. Zu einem richtigen Layout gehören aber nicht nur Texte, sondern auch Bilder. Doch woher nehmen, wenn nicht stehlen? Lorem Picsum heißt die Antwort naheliegenderweise. Dabei handelt es sich um eine kostenlose und unkomplizierte API, um Bilder in deine Seite bzw. dein Layout einzubinden. Die Bilder werden dabei bei jedem Aufruf zufällig neu ausgewählt:
Das schöne: Du kannst die Bilder relativ zielgenau aussuchen.
Wenn du denkst, du hast alles richtig gemacht, nachdem du einer der halb vollständigen Anleitungen da draußen gefolgt bist, und dann wirst du nach der mühseligen Installation von ein paar ODBC-Treibern doch mit der folgenden Fehlermeldung begrüßt:
[ISQL]ERROR: Could not SQLDriverConnect [01000][unixODBC][Driver Manager]Can't open lib '/usr/local/lib/libmyodbc8w.so' : file not found [ISQL]ERROR: Could not SQLDriverConnect Doch tatsächlich existiert die Datei. Die Fehlermeldung ist nur etwas unpräzise und vermutlich hast du die falschen Treiber heruntergeladen.
WordPress bringt von Hause aus ein Widget mit, dass die verwendeten Tags als Cloud darstellt (wer es ein wenig schöner mag, greift auf mein WordCloud Plugin zurück). Das Ganze hat nur einen Haken: Die entsprechende WordPress-Funktion wp_generate_tag_cloud nutzt aosort() als Sortierfunktion. Und die kommt mit Umlauten nicht sonderlich gut klar. Eine Lösung wäre also, die Umlaute für die Sortierung zu übersetzen, also Ä ind Ae, ö in oe und so weiter.
Bisher war ich immer recht zufrieden mit der Geschwindigkeit meiner selbstgehosteten Wordpress-Seiten. Im Schnitt hat es nicht länger als 2 Sekunden gedauert, bis die Inhalte aufgebaut waren. Mal mehr, mal weniger. Und das schien mir ein akzeptabler Wert zu sein. Ich nutzte eine der üblichen Standard-Installationen, die da draußen wohl weit verbreitet ist: Apache2 mit mod_php. Der PHP-Interpreter ist dabei “Teil” des Apache2-Servers. Das ist unkompliziert und schnell zu installieren und somit einfach eine pragmatische Lösung und auch deshalb wohl sehr weit verbreitet.
Das schöne an PHP: Viele Wege führen nach Rom.
Das Problem mit PHP: Viele Wege führen nach Rom.
Denn diese Vielfallt stellt den Entwickler von Welt mituner vor eine schwierige Frage: Welcher Weg ist der kürzeste? Will man z.B. einen Wert (needle) in einem Array (haystack) suchen, gibt es in PHP zehn verschiedene Methoden. Du hast richtig gelesen: Zehn. Ich unterscheide einerseits auch die strikten und nicht-strikten Vergleiche, andererseits lasse ich die wirklich exotischen Methoden außen vor.