So fügen Sie Nginx unter CentOS 7 ngx_pagespeed hinzu

Einführung

ngx_pagespeed oder einfach nur Pagespeed ist ein Nginx-Modul, mit dem Sie Ihre Website automatisch optimieren können, indem Sie die Größe der Ressourcen und damit die Zeit reduzieren, die die Browser der Clients zum Laden benötigen. Wenn Sie noch nicht damit vertraut sind, lesen Sie die official site.

Dieser Artikel führt Sie durch die Installation und Konfiguration des Pagespeed-Moduls für Nginx. Es ist wichtig zu wissen, dass Nginx das dynamische Laden von Modulen, das auf anderen Webservern wie Apache verfügbar ist, nicht unterstützt. Da Nginx diese Funktion nicht unterstützt, müssen Sie Nginx aus dem Quellcode erstellen, um das Modul hinzuzufügen.

Ein eigenes benutzerdefiniertes Paket zu haben hat einen Nachteil: Sie sind allein dafür verantwortlich, es zu aktualisieren, wenn es eine neue Version gibt. Berücksichtigen Sie dies, wenn Sie die Vor- und Nachteile der Verwendung von ngx_pagespeed abwägen.

Voraussetzungen

Dieses Handbuch wurde für CentOS 7 geschrieben. Ein Link: / community / tutorials / add-ngx_pagespeed-to-nginx-on-ubuntu-14-04 [Ubuntu 14.04 version] und ein Link: / community / tutorials / add-ngx_pagespeed-to -nginx-on-debian-8 [Debian 8-Version] sind ebenfalls verfügbar.

Stellen Sie vor dem Ausführen dieses Lernprogramms sicher, dass folgende Voraussetzungen erfüllt sind:

Sofern nicht anders angegeben, sollten alle Befehle, für die in diesem Lernprogramm Root-Berechtigungen erforderlich sind, als Nicht-Root-Benutzer mit Sudo-Berechtigungen ausgeführt werden.

Schritt 1 - Laden Sie die Quelle und ihre Abhängigkeiten herunter

Beginnen wir damit, sicherzustellen, dass wir über die gesamte Software verfügen, die zum Kompilieren und Testen von Nginx erforderlich ist. Bitte führen Sie den Befehl aus:

sudo yum install wget curl unzip gcc-c++ pcre-devel zlib-devel

Erstellen Sie als Nächstes einen Ordner in Ihrem Ausgangsverzeichnis, um das Quellpaket für Nginx herunterzuladen:

mkdir ~/custom-nginx

Wechseln Sie in dieses neu erstellte Verzeichnis:

cd ~/custom-nginx

Laden Sie dann das Nginx-Quellpaket in diesem Verzeichnis von der offiziellen Website its herunter. Derzeit ist die neueste Version 1.8.0 und kann mit dem folgenden Befehl heruntergeladen werden:

sudo wget http://nginx.org/download/nginx-1.8.0.tar.gz

Danach extrahieren Sie das neu heruntergeladene Paket mit dem Befehl:

sudo tar zxvf nginx-1.8.0.tar.gz

Um zu bestätigen, dass wir uns auf derselben Seite befinden, listen Sie den Inhalt des Ordners "+ ~ / custom-nginx +" auf:

ls ~/custom-nginx

Das Ergebnis sollte so aussehen:

Output of ls ~/custom-nginxnginx-1.8.0  nginx-1.8.0.tar.gz

Wie Sie sehen, ist die Version des Nginx-Quellpakets zum Zeitpunkt der Erstellung dieses Tutorials 1.8.0. Um das ngx_pagespeed-Modul hinzuzufügen, müssen Sie zuerst zum Ordner "+ modules " im extrahierten Ordner " nginx-1.8.0 +" gehen:

cd nginx-1.8.0/src/http/modules/

Laden Sie in diesem Verzeichnis das neueste Quellarchiv von ngx_pagespeed von der Website Github repository mit dem folgenden Befehl herunter:

sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/master.zip

Sobald der Download abgeschlossen ist, extrahieren Sie ihn mit dem Dienstprogramm "+ unzip +" wie folgt:

sudo unzip master.zip

Dadurch wird ein neues Verzeichnis namens "+ ngx_pagespeed-master " in Ihrem " ~ / custom-nginx / nginx-1.8.0 / src / http / modules / " -Verzeichnis erstellt. Benennen Sie dieses Verzeichnis mit dem folgenden Befehl einfach in " ngx_pagespeed +" um:

sudo mv ngx_pagespeed-master ngx_pagespeed

Gehe in das neue + ngx_pagespeed + Verzeichnis:

cd ngx_pagespeed

Laden Sie von dort die PageSpeed ​​Optimization Libraries (psol) herunter, die für die Kompilierung erforderlich sind:

sudo wget https://dl.google.com/dl/page-speed/psol/1.9.32.6.tar.gz

Wenn der Link zum psol-Archiv zum Zeitpunkt des Lesens dieses Artikels nicht funktioniert, überspringen Sie einfach diesen Schritt. Wenn Sie die Bibliotheken während der Kompilierung in den nächsten Schritten vermissen, wird ein Fehler mit aktualisierten Anweisungen zum späteren Abrufen des Pakets angezeigt.

Zum Schluss extrahieren Sie das psol-Paket im Verzeichnis + ~ / custom-nginx / nginx-1.4.6 / debian / modules / ngx_pagespeed +:

sudo tar -xzvf 1.9.32.6.tar.gz

Schritt 2 - Konfigurieren Sie die Quelle und kompilieren Sie sie

Jetzt können Sie die Nginx-Quelle konfigurieren und das Pagespeed-Modul einbinden. Wechseln Sie in das übergeordnete Verzeichnis der Nginx-Quelle:

cd ~/custom-nginx/nginx-1.8.0/

Dort führen Sie die Konfiguration der Quelle mit dem Befehl aus:

sudo ./configure --add-module=/home//custom-nginx/nginx-1.8.0/src/http/modules/ngx_pagespeed/ --user=nobody --group=nobody --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid

Die wichtigste Konfigurationsoption von oben ist "+ - add-module = / home // custom-nginx / nginx-1.8.0 / src / http / modules / ngx_pagespeed / +". Dadurch wird sichergestellt, dass das Pagespeed-Modul Teil der Nginx-Kompilierung ist. Bitte stellen Sie sicher, dass Sie Ihren Benutzer in diesem Pfad ersetzen.

Der Einfachheit halber haben wir einige andere Einstellungen angepasst, z. B. den Speicherort der Protokolldateien und den Benutzer / die Gruppe, unter denen der Server ausgeführt werden soll. Weitere Informationen zu den anpassbaren Optionen finden Sie in der Dokumentation unter the compile-time options.

Sobald die Konfiguration abgeschlossen ist, starten Sie die Kompilierung mit dem Befehl:

sudo make

Dies kann abhängig von den Ressourcen Ihres Tropfens bis zu zehn Minuten dauern. Danach können Sie die Software mit dem Befehl installieren:

sudo make install

Sie finden Ihr benutzerdefiniertes Nginx im Verzeichnis "+ / usr / local / nginx +". Um dies noch komfortabler zu gestalten, erstellen wir zwei symbolische Verknüpfungen. Zuerst für die Konfigurationsdateien:

sudo ln -s /usr/local/nginx/conf/ /etc/nginx

Mit diesem Befehl können Sie die Konfigurationsdateien im Verzeichnis + / etc / nginx / + finden, in dem sich normalerweise Konfigurationsdateien befinden.

Sie sollten auch eine symbolische Verknüpfung zur Hauptbinärdatei im Verzeichnis "+ / usr / sbin / +" erstellen, damit Sie diese leichter finden und in das Startskript aufnehmen können. Dies wird auch für das Startskript benötigt, das wir später verwenden werden. Führen Sie dazu den Befehl aus:

sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

Schritt 3 - Erstellen Sie das Startskript

Der vorherige Installationsprozess erledigt einige einfache Aufgaben, z. B. das Erstellen des erforderlichen Benutzers und der Gruppe nobody, unter denen Nginx ausgeführt wird. Sie müssen das Startskript jedoch noch manuell erstellen. Glücklicherweise ist für Nginx unter CentOS 7 bereits eine auf nginx.com verfügbar.

Erstellen Sie zunächst eine neue Datei im Verzeichnis "+ / etc / init.d / +":

sudo nano /etc/init.d/nginx

Gehen Sie dann zu https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/, kopieren Sie das Skript und fügen Sie es in diese neue Datei ein.

Führen Sie zum Schluss den folgenden Befehl aus, um dieses Skript ausführbar zu machen:

sudo chmod +x /etc/init.d/nginx

Danach können Sie Nginx zum ersten Mal mit dem folgenden Befehl starten:

sudo service nginx start

Um sicherzustellen, dass Nginx jedes Mal mit dem Droplet gestartet und gestoppt wird, fügen Sie es mit dem folgenden Befehl zu den Standard-Runlevels hinzu:

sudo chkconfig nginx on

Schritt 4 - Aktivieren Sie das Pagespeed-Modul

Sie haben jetzt Nginx installiert. Der nächste Schritt ist die Aktivierung des Moduls ngx_pagespeed.

Bevor Sie das Modul aktivieren, müssen Sie einen Ordner erstellen, in dem die Dateien für Ihre Website zwischengespeichert werden:

sudo mkdir -p /var/ngx_pagespeed_cache

Stellen Sie sicher, dass Sie den Besitzer dieses Ordners in den Nginx-Benutzer ändern, damit der Webserver darin Dateien speichern kann:

sudo chown -R nobody:nobody /var/ngx_pagespeed_cache

Öffnen Sie dann die Nginx-Hauptkonfigurationsdatei + nginx.conf + in Ihrem bevorzugten Texteditor wie folgt:

sudo nano /etc/nginx/nginx.conf

Fügen Sie in dieser Datei die folgenden Zeilen zum + server + Block hinzu und speichern Sie die Änderungen:

/etc/nginx/nginx.conf

##
# Pagespeed main settings

pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

# Ensure requests for pagespeed optimized resources go to the pagespeed
# handler and no extraneous headers get set.

location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }

Sie können diese Zeilen an einer beliebigen Stelle im Block einfügen. In unserem Beispiel wird sie jedoch am Ende des Blocks eingefügt.

So sollte die Datei "+ / etc / nginx / nginx.conf" jetzt aussehen:

/etc/nginx/nginx.conf

...
http {
   include       mime.types;
   default_type  application/octet-stream;

   #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
   #                  '$status $body_bytes_sent "$http_referer" '
   #                  '"$http_user_agent" "$http_x_forwarded_for"';

   #access_log  logs/access.log  main;

   sendfile        on;
   #tcp_nopush     on;

   #keepalive_timeout  0;
   keepalive_timeout  65;

   #gzip  on;

   server {
       listen       80;
       server_name  localhost;

       #charset koi8-r;

       #access_log  logs/host.access.log  main;














       location / {
           root   html;
           index  index.html index.htm;
       }
...

Stellen Sie außerdem sicher, dass jeder zusätzlichen + server + Blockdatei, die Sie haben, Seitengeschwindigkeitskonfigurationszeilen hinzugefügt werden.

Starten Sie den Nginx-Server neu, damit die Änderungen wirksam werden:

sudo service nginx restart

Schritt 5 - Testen Sie die Installation

Führen Sie die Nginx-Binärdatei folgendermaßen aus, um zu überprüfen, ob das Modul ngx_pagespeed erfolgreich installiert wurde:

sudo /usr/sbin/nginx -V

Wenn die Installation erfolgreich war, sollte das Modul ngx_pagespeed unter den anderen benutzerdefinierten Argumenten aufgeführt sein:

Outputnginx version: nginx/1.8.0
...
configure arguments: --add-module=/home//custom-nginx/nginx-1.8.0/src/http/modules/ngx_pagespeed/
...

Das oben Gesagte bedeutet noch nicht, dass die Seitengeschwindigkeit aktiviert ist und für Ihre Website funktioniert. Um dies zu bestätigen, können Sie "+ curl ", ein Tool und eine Bibliothek für clientseitige URL-Übertragungen verwenden. Überprüfe damit den ` X-Page-Speed ​​+` Header wie folgt:

curl -I -p http://localhost| grep X-Page-Speed

Wenn das Modul ngx_pagespeed einwandfrei funktioniert, sollten Sie es in der Ausgabe zusammen mit seiner Version sehen:

OutputX-Page-Speed: 1.9.32.6-7321

Wenn dieser Header nicht angezeigt wird, stellen Sie sicher, dass Sie die Seitengeschwindigkeit gemäß den Anweisungen aus dem vorherigen Schritt aktiviert haben.

Fazit

So können Sie Nginx mit einem benutzerdefinierten Modul, pagespeed, erstellen. Diese Schritte gelten für alle anderen Module, die in Nginx noch nicht verfügbar sind. Darüber hinaus ist der gesamte Vorgang zum Installieren eines Pakets aus dem Quellcode für andere Softwarepakete, die Sie möglicherweise anpassen müssen, ähnlich. Vergessen Sie nicht, dass Sie diese Pakete selbst warten und neu installieren müssen, wenn es eine neue Version gibt.