So installieren und konfigurieren Sie mod_deflate unter CentOS 7

Einführung

Mod_deflate ist ein Apache-Modul, mit dem die Ausgabe von Ihrem Webserver komprimiert werden kann, bevor sie an den Client gesendet wird. Sobald die Größe Ihres Websiteinhalts komprimiert ist, ist diese kleiner und die Clients können ihn schneller herunterladen. Dies ist nicht nur für Kunden mit geringerer Bandbreite von Nutzen, sondern wird auch von Suchmaschinen bei der Bewertung der Leistung Ihrer Website und des Page Rank berücksichtigt.

Neben dem Komprimieren von Inhalten kann mod_deflate auch zum Dekomprimieren verwendet werden. Diese Technik ist anwendbar, wenn Sie Apache als Reverse-Proxy verwenden und den Inhalt, der den Proxy durchläuft, weiter verarbeiten möchten. Diese Technik hat jedoch eine sehr begrenzte Verwendung. Wir werden den Fokus des Artikels auf die Verwendung von mod_deflate zur Komprimierung richten.

Voraussetzungen

Dieses Handbuch wurde unter CentOS 7 getestet. Die Installation und Konfiguration des Moduls ist nicht vom Betriebssystem oder der Betriebssystemversion abhängig. Der Speicherort der Konfigurationsdateien kann jedoch je nach Betriebssystem und Version variieren.

Es wird auch davon ausgegangen, dass Sie Apache 2.4.0 oder höher ausführen. Um Apache zu installieren, folgen Sie bitte Schritt 1 der https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-7[How To Installieren Sie den Linux-, Apache-, MySQL-, PHP (LAMP) -Stack unter CentOS.

Alle Befehle in diesem Lernprogramm sollten als Benutzer ohne Rootberechtigung ausgeführt werden. Wenn für den Befehl root-Zugriff erforderlich ist, wird vor + sudo + angezeigt. Wenn Sie das noch nicht eingerichtet haben, folgen Sie diesem Tutorial: Initial Server Setup on CentOS 7.

Installation

Mod_deflate ist in der Apache-Standardinstallation unter CentOS 7 enthalten und aktiviert. Um dies zu bestätigen, starte "+ apachectl ", das Apache Server Control Interface, und filtere die Ausgabe mit " grep " für das Schlüsselwort " deflate +" wie folgt:

apachectl -t -D DUMP_MODULES |grep deflate

Sie sollten + deflate_module (shared) + sehen, wenn mod_deflate installiert und aktiviert ist. Wenn dies nicht angezeigt wird, führen Sie die folgenden Schritte zur Fehlerbehebung aus:

  1. Stellen Sie sicher, dass die Moduldatei installiert ist. Diese Datei ist Teil des Kernpakets "+ httpd ", das Sie gemäß den oben genannten Voraussetzungen bereits installiert haben sollten. Standardmäßig befindet es sich in ` / etc / httpd / modules / mod_deflate.so `. Außerdem sollte der Webserver diese Datei öffnen können. Zu diesem Zweck sollte ` mod_deflate.so +` über weltweit lesbare Berechtigungen wie 755 verfügen.

  2. Überprüfen Sie, ob das Modul geladen wurde. Öffnen Sie die Apache-Basismodul-Konfigurationsdatei "+ /etc/httpd/conf.modules.d/00-base.conf +" und vergewissern Sie sich, dass diese Zeile vorhanden und nicht auskommentiert ist:

LoadModule deflate_module modules/mod_deflate.so

Aufbau

Um mit der Verwendung von mod_deflate zu beginnen, müssen Sie angeben, welche Dateitypen komprimiert werden sollen. Einerseits können reine Textformate durch Komprimierung erheblich verkleinert werden. Daher ist es sinnvoll, sie auf HTML-, CSS- oder JavaScript-Dateien anzuwenden. Auf der anderen Seite sind viele Multimedia-Formate wie Flash und Bilder bereits komprimiert, und eine zusätzliche Komprimierung ist sinnlos.

Um mod_deflate zu konfigurieren, erstellen Sie eine neue Konfigurationsdatei "+ / etc / httpd / conf.d / mod_deflate.conf +" mit dem folgenden Beispielcode:

/etc/httpd/conf.d/mod_deflate.conf

<filesMatch "\.(js|html|css)$">
   SetOutputFilter DEFLATE
</filesMatch>

Der obige Code bedeutet, dass eine Datei, die den Erweiterungen "+ .js ", " .html" oder "+ .css" entspricht, durch die standardmäßige Apache-Direktive "+ SetOutputFilter" komprimiert (entleert) wird. Sie können andere ähnliche Textdateierweiterungen hinzufügen, die sich auf Ihrer Site befinden, z. B. "+ .txt +".

Darüber hinaus hat mod_deflate einige wichtige Konfigurationsoptionen:

  • + DeflateCompressionLevel + - die anzuwendende Komprimierungsstufe. Diese Stufe ist standardmäßig 9, die höchste Komprimierungsstufe. 1 ist die niedrigste Komprimierungsstufe. Eine höhere Komprimierung würde die geringste Ausgabe zum Preis einer höheren Server-CPU-Auslastung ergeben.

  • + DeflateMemLevel + - die Speichermenge, die zlib, die komprimierende Bibliothek, verwenden kann. Der Standardwert ist 9, was auch der höchste Wert ist. Um den zulässigen Speicher genau zu berechnen, müssen Sie den Wert "+ DeflateMemLevel +" mit 16 KB multiplizieren.

  • + DeflateWindowSize + - die Größe des Komprimierungsfensters. Standardmäßig ist dies der höchstmögliche Wert von 15. Eine höhere Anzahl bedeutet eine höhere Komprimierungsstufe, wiederum zum Preis von mehr Serverressourcen.

In den meisten Fällen können Sie die obigen Werte den Standardwerten überlassen. Wenn Sie jedoch vermuten, dass sich Ihre Serverleistung nach der Verwendung von mod_deflate erheblich verschlechtert hat, konfigurieren Sie niedrigere Werte in Ihrer Konfigurationsdatei "+ / etc / httpd / conf.d / mod_deflate.conf +" wie folgt:

DeflateCompressionLevel 1

Das Obige verringert die Komprimierungsstufe, wodurch die Dateien größer werden. Mod_deflate wird auf diese Weise jedoch weniger CPU verbrauchen. Stellen Sie sicher, dass Sie Apache neu starten, wenn Sie solche Änderungen übernehmen möchten.

Testen

Es gibt verschiedene Möglichkeiten, mod_deflate zu testen. Am einfachsten ist es jedoch, wget, den nicht interaktiven Netzwerk-Downloader, zu verwenden. Wenn Sie es noch nicht auf Ihrem CentOS 7-Droplet haben, können Sie es mit dem Befehl "+ sudo yum install -y wget +" installieren.

Für den Test benötigen Sie eine Textdatei von mindestens einigen hundert KB, die beim Komprimieren kleiner werden soll. Wenn Sie keine solche Datei zur Hand haben, können Sie JQuery, eine beliebte JavaScript-Bibliothek, herunterladen und auf Ihre Website hochladen. Wenn Sie nicht sicher sind, wo Sie die Datei ablegen sollen, können Sie sie einfach in das Apache-Standard-Dokumentenstammverzeichnis hochladen, das in CentOS 7 "+ / var / www / html / +" lautet. Somit ist die Datei im Stammverzeichnis Ihrer Standardwebsite verfügbar.

Sobald die Beispiel-Testdatei auf Ihre Site hochgeladen wurde, laden Sie sie mit + wget + herunter. Sie können diesen Test entweder von Ihrem lokalen Computer oder vom Droplet aus durchführen. so was:

wget --header="Accept-Encoding: gzip" http://<your_server_ip>/jquery-1.11.3.js

Im obigen Beispiel laden Sie die Datei + jquery-1.11.3.js von Ihrem Apache-Server herunter. Um die Komprimierung zu nutzen, übergeben wir das zusätzliche + wget + Header-Argument + Accept-Encoding: gzip +.

Beim Herunterladen auf die oben beschriebene Weise sollte die Datei "+ jquery-1.11.3.js +" 83 KB groß sein. Tatsächlich ist dies nicht genau dieselbe ursprüngliche JavaScript-Datei, und sie sollte zusätzlich vom Client extrahiert werden, was auch auf der Clientseite zu einem gewissen Overhead führt. Die über das Netzwerk übertragene Größe beträgt jedoch nur 83 KB und ist damit mehr als dreimal kleiner als die ursprüngliche Datei (278 KB).

Sie können die obige Berechnung zunächst bestätigen, indem Sie die Größe der heruntergeladenen Datei mit dem Linux-Befehl überprüfen, um den Verzeichnisinhalt wie folgt aufzulisten:

ls -lah jquery-1.11.3.js
-rw-r--r-- 1 user user 83K Apr 28 12:20 jquery-1.11.3.js

Anschließend können Sie das Ergebnis mit der Originaldatei auf Ihrer Site erneut mit dem Befehl + ls + vergleichen:

ls -lah /var/www/html/jquery-1.11.3.js
-rw-r--r-- 1 apache apache 278K Apr 28 12:20 /var/www/html/jquery-1.11.3.js

Fazit

Wie Sie in diesem Artikel und anhand eines Beispiels aus der Praxis mit der JQuery-Bibliothek gesehen haben, kann Mod_deflate Ihnen dabei helfen, den Bandbreitenbedarf für Ihre Site erheblich zu verringern. Weitere Informationen zur Optimierung Ihrer Website finden Sie unter Apache content caching der nächste logische Schritt nach dem Aktivieren von mod_deflate.

Related