Inhaltsverzeichnis

3,99€ – PDF-Download enthält 19% Mwst.


oder für eBook Reader (Tolino, Kindle, Sony) nur US$ 3,99 bei smashwords.com – hier klicken!

1 Verrückt nach Geschwindigkeit

1.1 Schnell ist noch zu langsam

1.2 Was bremst Websites?

1.2.1 Domain-Namensauflösung
1.2.2 Transportweg zwischen Webserver und Webbrowser
1.2.3 Anzahl der Prozesse und CPU-Last

1.2.3.1 Mehrere Befehle gleichzeitig verarbeiten?
1.2.3.2 Was ist CPU-Last und wie misst man sie?
1.2.3.3 CPU-Last Headroom beachten
1.2.3.4 CPU-Zeit sparen

1.2.4 Andere Nutzer auf der gleichen Maschine
1.2.5 Datenbank-Abfragen
1.2.6 Datenmenge und Website-Programme
1.2.7 Persönliches Empfinden der Anwender

2 So geht’s schneller

2.1 Systemumgebung

2.1.1 Unnötige Dienste (Daemons) abschalten
2.1.2 RAM vergrößern
2.1.3 Schnelle Festplatten nutzen
2.1.4 Gegen DoS und Einbruchversuche schützen

2.1.4.1 Firewall einsetzen
2.1.4.2 Angreifende IP-Adressen blockieren
2.1.4.3 SSH-Zugang auf bestimmte IP-Adressen und Nutzer beschränken

2.1.5 Leistung auf mehrere Hosts verteilen

2.1.5.1 Cloud-Computing macht Ihre Website nicht schneller
2.1.5.2 Webserver-Gruppe einrichten
2.1.5.3 Lastverteilung per DNS oder Hardware-Lastverteiler verwenden
2.1.5.4 Mailserver vom Webserver trennen
2.1.5.5 Datenbankserver vom Webserver trennen
2.1.5.6 Mehrere Datenbankserver einsetzen
2.1.5.7 Mehrere Konzepte zur Lastverteilung kombinieren

2.2 E-Mail-Konfiguration

2.2.1 local-host-names einschränken
2.2.2 Sendmail Timeouts verringern

2.2.2.1 Konfiguration vorübergehend direkt in sendmail.cf ändern
2.2.2.2 Konfiguration dauerhaft in der m4-Makro-Datei ändern

2.2.3 Viren-, Spamfilter und procmail abschalten

2.3 Webserver-Konfiguration

2.3.1 Nginx statt Apache einsetzen
2.3.2 Unnütze Module abschalten
2.3.3 Kommentarzeilen aus httpd.conf entfernen
2.3.4 Host Name Lookups abschalten
2.3.5 Test auf symbolische Links abschalten
2.3.6 .htaccess-Befehle nach httpd.conf verschieben
2.3.7 Verschlüsselung nur verwenden, wo nötig

2.3.7.1 Falls TLS verwendet wird
2.3.7.2 Falls auf TLS verzichtet wird

2.3.8 Datenkompression nutzen

2.3.8.1 Texte komprimieren
2.3.8.2 Bilder und andere Binärdaten nicht komprimieren
2.3.8.3 Mit „Deflate“ im Webserver den Datenverkehr komprimieren

2.3.9 Log-Dateien sinnvoll nutzen

2.3.9.1 Unnütze Log-Dateien abschalten
2.3.9.2 Log-Dateien häufig rotieren

2.4 Crontab- und atd-Zeitplanung

2.4.1 Aufträge ohne Wildcard planen
2.4.2 Aufträge nur ausführen, wenn es wirklich nötig ist
2.4.3 Termin-Aufträge nur bei niedriger CPU-Last ausführen

2.5 MySQL-Datenbank

2.5.1 Gegen Angriffe schützen

2.5.1.1 Nur Zugriffe von localhost erlauben
2.5.1.2 Zugriffe von anderen Hosts erlauben, aber beschränken
2.5.1.3 Nutzer auf bestimmte Server beschränken

2.5.2 MyISAM statt InnoDB verwenden
2.5.3 Konfiguration optimieren

2.5.3.1 Aktuelle Betriebsdaten ermitteln
2.5.3.2 Konfigurationswerte setzen

2.5.4 Indizes verwenden, aber deren Länge begrenzen
2.5.5 Tabellenstruktur und Abfragen optimieren

2.5.5.1 Tabellen mit „optimize“ verbessern
2.5.5.2 Platzsparende Datentypen verwenden, „procedure analyse“ nutzen
2.5.5.3 Datentyp „ENUM“ häufig verwenden
2.5.5.4 Datenfelder und Zeichensätze so kurz wie möglich halten
2.5.5.5 Nur die Felder abrufen, die benötigt werden
2.5.5.6 „Order by“ sparsam verwenden
2.5.5.7 „Limit“ häufig verwenden
2.5.5.8 „Inner Join“ statt anderer Joins verwenden
2.5.5.9 „IN“-Mengenoperator statt „OR“-Verknüpfung verwenden
2.5.5.10 Mehrere Transaktionen zusammenfassen

2.6 Gestaltung und Programmierung

2.6.1 Bild-, Audio- und Videodateien platzsparend speichern

2.6.1.1 Das richtige Dateiformat für Bilder wählen
2.6.1.2 Die richtige Kompressionsstufe für Bilder wählen
2.6.1.3 Bilddateien auf die Anzeigegröße herunterrechnen
2.6.1.4 Video- und Audio-Dateien vielleicht von externen Websites einbetten

2.6.2 Fehler vermeiden, Logs abschalten
2.6.3 Cache und Repositories nutzen

2.6.3.1 Webseiten-Formatierung in CSS-Stylesheets auslagern
2.6.3.2 JavaScript in .js-Dateien auslagern
2.6.3.3 .js-Dateien aus Repositories laden
2.6.3.4 Falls Caching unerwünscht ist

2.6.4 HTML-Code kürzen

2.6.4.1 Formatierungsnamen kürzen
2.6.4.2 Unnötige Zeichen entfernen, Dateinamen kürzen
2.6.4.3 Unnötige Eigenschaften weglassen
2.6.4.4 Wiederkehrende JavaScript-Ereignisse aus HTML-Tags verbannen

2.6.5 Erst HTML-, danach JavaScript-Code
2.6.6 Dem Anwender zeigen, wenn etwas passiert
2.6.7 Asynchrone Kommunikation nutzen

2.6.7.1 Eigene AJAX-Funktion
2.6.7.2 AJAX mit JQuery
2.6.7.3 Anzahl der Serveranfragen begrenzen

2.6.8 RAM sparsam verwenden
2.6.9 Datenbanken überlegt verwenden

2.6.9.1 Zugriffe sparen
2.6.9.2 PHP Baustein MYSQLi statt MYSQL verwenden
2.6.9.3 Persistente Verbindungen nutzen

2.6.10 Includes selten nutzen
2.6.11 Verarbeitung frühzeitig abbrechen

2.6.11.1 Schleifen frühzeitig beenden
2.6.11.2 Programme vorzeitig beenden – manchmal aber nicht

2.6.12 Schleifen optimieren

2.6.12.1 Unnötiges aus Schleifen verbannen
2.6.12.2 Steuerparameter für For-Next-Schleifen vorab berechnen

2.6.13 Programm-Befehle optimieren

2.6.13.1 Fehler abfangen, statt die Fehlerausgabe zu unterdrücken
2.6.13.2 Einfache statt doppelte Anführungszeichen
2.6.13.3 Identität statt Gleichheit prüfen
2.6.13.4 Trinitätsoperator statt If-Then verwenden
2.6.13.5 Reihenfolge verknüpfter If-Then-Bedingungen sortieren
2.6.13.6 Unnötige Klammern weglassen
2.6.13.7 Optionale Parameter weglassen
2.6.13.8 Variablen als Zeiger an Funktionen übergeben
2.6.13.9 Reguläre Ausdrücke vermeiden, Arrays beim Ersetzen nutzen
2.6.13.10 ++$i statt $i++ oder $i+=1 verwenden
2.6.13.11 array_map() statt foreach() verwenden
2.6.13.12 htmlspecialchars() statt htmlentities() verwenden
2.6.13.13 echo() statt print verwenden

2.6.14 DOM-Zugriffe optimieren
2.6.15 Warteschlangen bilden
2.6.16 Code minimieren

2.6.16.1 HTML-Dateien minimieren
2.6.16.2 CSS-Stylesheets minimieren
2.6.16.3 JavaScript-Bibliotheken minimieren
2.6.16.4 PHP-Programme minimieren
2.6.16.5 Compressor-Programme vereinfachen die Minimierung

2.6.17 Dynamische Webseiten statisch speichern

2.6.17.1 Seiten auf dem Server cachen
2.6.17.2 Varnish-Cache nutzen

2.6.18 Vor Hackern schützen

2.6.18.1 Denial-of-Service Angriffe abwehren
2.6.18.2 Data-Mining abwehren

3 Anhang

3.1 Glossar

3.2 Über den Autor

 

Für eBook Reader (Tolino, Kindle, Sony) nur US$ 3,99 (inkl. MwSt. sofern anwendbar) bei smashwords.com – hier klicken!