Wie installiert man Nginx mit Google PageSpeed unter Ubuntu 20.04

Nginx ist ein freier und quelloffener Webserver, der viele Websites im Internet betreibt. Er kann als Reverse-Proxy und Load-Balancer eingesetzt werden. Er ist bekannt für seine Leistungsfähigkeit und Stabilität.

ngx_pagespeed ist ein Open-Source-Modul von Nginx, das zur Optimierung der Leistung Ihrer Website verwendet werden kann. Es wurde von Google entwickelt und reduziert die Seitenladezeit und beschleunigt die Reaktionszeit der Website.

In diesem Tutorial zeigen wir Ihnen, wie Sie ngx_pagespeed als dynamisches Modul mit Nginx auf einem Ubuntu 20.04-Server kompilieren können.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Ein gültiger Domain-Name, der auf Ihre Server-IP zeigt. In diesem Tutorial verwenden wir die Domäne example.com.
  • Ein Root-Passwort wird für den Server konfiguriert.

Erste Schritte

Bevor Sie beginnen, müssen Sie Ihre Systempakete auf die neueste Version aktualisieren. Sie können sie aktualisieren, indem Sie den folgenden Befehl ausführen:

apt-get update -y

Sobald alle Pakete installiert sind, müssen Sie einige erforderliche Abhängigkeiten auf Ihrem System installieren. Sie können sie alle mit dem folgenden Befehl installieren:

apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 git libpcre3-dev unzip -y

Wenn alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.

Nginx Webserver installieren

Als nächstes müssen Sie den Nginx-Webserver auf Ihrem System installieren. Sie können ihn mit dem folgenden Befehl installieren:

apt-get install nginx -y

Sobald die Installation abgeschlossen ist, können Sie die installierte Version von Nginx mit dem folgenden Befehl überprüfen:

nginx -v

Sie sollten die Nginx-Version in der folgenden Ausgabe sehen:

nginx version: nginx/1.18.0 (Ubuntu)

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Herunterladen und Kompilieren von ngx_pagespeed

Vor dem Herunterladen und Kompilieren von ngx_pagespeed. Sie müssen den Nginx-Quelltext in Ihrem System herunterladen. Sie können das Nginx-Quellpaket mit dem folgenden Befehl herunterladen:

Hinweis: Stellen Sie sicher, dass die heruntergeladene Nginx-Version mit der installierten Nginx-Version übereinstimmt. Hier ist die installierte Version von Nginx 1.18.0. Sie müssen also den Nginx-Quellcode der Version 1.18.0 von der Nginx-Website herunterladen.

wget http://nginx.org/download/nginx-1.18.0.tar.gz

Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvzf nginx-1.18.0.tar.gz

Als nächstes laden Sie die Quelle ngx_pagespeed mit folgendem Befehl aus dem Git-Repository herunter:

git clone https://github.com/apache/incubator-pagespeed-ngx.git

Sobald der Download abgeschlossen ist, wechseln Sie das Verzeichnis in das heruntergeladene Verzeichnis und checken Sie die stabile Version mit dem folgenden Befehl aus:

cd incubator-pagespeed-ngx
git checkout latest-stable

Sie sollten die folgende Ausgabe erhalten:

Note: switching to 'latest-stable'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c 

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 11ba8ea54 Update PSOL_BINARY_URL

Aus der obigen Ausgabe wählen Sie die „PSOL_BINARY_URL“-Datei, um die PSOL-Download-URL zu sehen:

cat PSOL_BINARY_URL

Sie sollten die folgende Ausgabe erhalten:

https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz

Führen Sie nun den folgenden Befehl aus, um PSOL unter Verwendung der obigen URL herunterzuladen: Sie sollten die folgende Ausgabe erhalten

wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz

Als nächstes extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvzf 1.13.35.2-x64.tar.gz

Ändern Sie als nächstes das Verzeichnis in den Nginx-Quellcode und installieren Sie alle erforderlichen Abhängigkeiten mit dem folgenden Befehl:

cd /root/nginx-1.18.0
apt-get build-dep nginx
apt-get install uuid-dev

Kompilieren Sie als nächstes das Modul ngx_pagespeed mit folgendem Befehl: Führen Sie als nächstes das Modul ngx_pagespeed mit folgendem Befehl aus:

./configure --with-compat --add-dynamic-module=/root/incubator-pagespeed-ngx

Sie sollten die folgende Ausgabe erhalten:

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

Führen Sie als nächstes den folgenden Befehl aus, um das Pagespeed-Modul zu kompilieren:

make modules

Kopieren Sie als nächstes das generierte Modul in das Verzeichnis Nginx-Module:

cp objs/ngx_pagespeed.so /usr/share/nginx/modules/

Zu diesem Zeitpunkt ist das Modul ngx_pagespeed in Ihrem System kompiliert. Sie können nun mit dem nächsten Schritt fortfahren.

Konfigurieren Sie Nginx für die Verwendung des ngx_pagespeed-Moduls

Als nächstes müssen Sie Nginx so konfigurieren, dass das Modul ngx_pagespeed verwendet wird. Bearbeiten Sie zunächst die Hauptkonfigurationsdatei von Nginx und definieren Sie den Pfad zum Modul ngx_pagespeed:

nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile am Anfang der Datei hinzu: ngx_pagespeed

load_module modules/ngx_pagespeed.so;

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Als nächstes erstellen Sie mit dem folgenden Befehl ein Verzeichnis für pagespeed-Caches:

mkdir -p /var/ngx_pagespeed_cache

Legen Sie mit folgendem Befehl die richtigen Eigentumsverhältnisse fest:

chown -R www-data:www-data /var/ngx_pagespeed_cache

Bearbeiten Sie als nächstes die Nginx-Standardkonfigurationsdatei für virtuelle Hosts und fügen Sie die Pagespeed-Konfiguration hinzu:

nano /etc/nginx/sites-available/default

Ersetzen Sie alle Zeilen durch die folgenden Zeilen:

server {
     listen 80;
     server_name example.com; 

     root /var/www/html;
     index index.nginx-debian.html index.html index.htm;

     access_log   /var/log/nginx/access.log;
     error_log    /var/log/nginx/error.log;

     location / {
         try_files $uri $uri/ =404;
     }

     pagespeed on;
     pagespeed FileCachePath "/var/ngx_pagespeed_cache/";
     pagespeed RewriteLevel OptimizeForBandwidth;

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

     location ~ "^/pagespeed_static/" { }
     location ~ "^/ngx_pagespeed_beacon$" { }
pagespeed RewriteLevel CoreFilters;

 }

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Überprüfen Sie dann Nginx mit dem folgenden Befehl auf etwaige Syntaxfehler:

nginx -t

Sie sollten die folgende Ausgabe erhalten:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starten Sie schließlich den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Sie können den Status des Nginx-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie sollten die folgende Ausgabe erhalten:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-11-26 05:32:23 UTC; 20s ago
       Docs: man:nginx(8)
    Process: 363 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 385 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 386 (nginx)
      Tasks: 3 (limit: 2353)
     Memory: 14.4M
     CGroup: /system.slice/nginx.service
             ??386 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??387 nginx: worker process
             ??388 nginx: worker process

Nov 26 05:32:23 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 26 05:32:23 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Überprüfen Sie das Modul ngx_pagespeed

Zu diesem Zeitpunkt ist Nginx mit ngx_pagespeed-Unterstützung konfiguriert. Jetzt ist es an der Zeit, es zu testen, ob es installiert ist oder nicht.

Um die Seitengeschwindigkeit zu testen, führen Sie den folgenden Befehl aus, indem Sie Ihren Domänennamen sichern:

curl -I -p http://example.com

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:

HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
Date: Wed, 25 Nov 2020 11:58:56 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

In der obigen Ausgabe bedeutet X-Page-Speed: 1.13.35.2-0, dass PageSpeed aktiv ist und Ihre Website optimiert.

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben ngx_pagespeed mit Nginx erfolgreich auf einem Ubuntu 20.04-Server installiert. Ich hoffe, dieses Modul wird die Leistung Ihres Nginx-Webservers steigern und die Website beschleunigen. Zögern Sie nicht, mich zu fragen, wenn Sie irgendwelche Fragen haben.

Das könnte dich auch interessieren …