Installation des PageSpeed-Moduls für Nginx auf Debian 9

Nginx mit ngx_pagespeed für die automatische Website-Performance-Optimierung kompilieren.

ngx_pagespeed ist ein Nginx-Modul, das Ihre Webseiten automatisch optimiert — es komprimiert Bilder, minifiziert CSS und JavaScript, verwaltet das Caching und vieles mehr — ohne eine einzige Zeile Ihres Site-Codes anzufassen.

Wichtiger Hinweis

Diese Anleitung beinhaltet die Neukompilierung von Nginx aus dem Quellcode. Stellen Sie sicher, dass Sie ein Backup Ihrer aktuellen Nginx-Konfiguration haben, und notieren Sie sich Ihre vorhandenen Compile-Flags — Sie werden sie benötigen.

Build-Abhängigkeiten installieren

sudo apt-get build-dep nginx
sudo apt-get update
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev

Arbeitsverzeichnis anlegen

mkdir ~/custom-nginx
cd ~/custom-nginx

Nginx-Quellcode herunterladen

Prüfen Sie zunächst, welche Nginx-Version aktuell läuft:

nginx -v
nginx version: nginx/1.18.0

Laden Sie das passende Quell-Tarball von der offiziellen Nginx-Website herunter:

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

ngx_pagespeed einrichten

Wechseln Sie in das Nginx-Modulverzeichnis:

cd nginx-1.18.0/src/http/modules/

Laden Sie ngx_pagespeed aus dem GitHub-Repository herunter:

sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/master.zip
sudo unzip master.zip
sudo mv incubator-pagespeed-ngx-master ngx_pagespeed
cd ngx_pagespeed

Laden Sie die PageSpeed Optimization Libraries (psol) herunter — sie werden für die Kompilierung benötigt:

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

Nginx mit dem pagespeed-Modul kompilieren

Wechseln Sie zurück in das Nginx-Quellverzeichnis:

cd ~/custom-nginx/nginx-1.18.0/

Prüfen Sie zunächst die Compile-Flags, mit denen Ihr aktuelles Nginx gebaut wurde — Sie müssen sie replizieren:

nginx -V

Führen Sie ./configure mit denselben Flags aus und fügen Sie am Ende --add-module hinzu:

sudo ./configure \
  --prefix=/etc/nginx \
  --sbin-path=/usr/sbin/nginx \
  --modules-path=/usr/lib/nginx/modules \
  --conf-path=/etc/nginx/nginx.conf \
  --error-log-path=/var/log/nginx/error.log \
  --http-log-path=/var/log/nginx/access.log \
  --pid-path=/var/run/nginx.pid \
  --lock-path=/var/run/nginx.lock \
  --http-client-body-temp-path=/var/cache/nginx/client_temp \
  --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
  --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
  --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
  --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
  --user=nginx \
  --group=nginx \
  --with-compat \
  --with-file-aio \
  --with-threads \
  --with-http_addition_module \
  --with-http_auth_request_module \
  --with-http_dav_module \
  --with-http_flv_module \
  --with-http_gunzip_module \
  --with-http_gzip_static_module \
  --with-http_mp4_module \
  --with-http_random_index_module \
  --with-http_realip_module \
  --with-http_secure_link_module \
  --with-http_slice_module \
  --with-http_ssl_module \
  --with-http_stub_status_module \
  --with-http_sub_module \
  --with-http_v2_module \
  --with-mail \
  --with-mail_ssl_module \
  --with-stream \
  --with-stream_realip_module \
  --with-stream_ssl_module \
  --with-stream_ssl_preread_module \
  --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' \
  --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie' \
  --add-module=./src/http/modules/ngx_pagespeed/

Verwenden Sie stets die Flags aus der Ausgabe Ihres eigenen nginx -V — sie können je nach Build-Konfiguration Ihres Systems von obigem Beispiel abweichen.

Kompilieren und installieren:

sudo make
sudo make install

ngx_pagespeed aktivieren

Erstellen Sie ein Cache-Verzeichnis für das Modul:

sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R www-data:www-data /var/ngx_pagespeed_cache

Öffnen Sie die Nginx-Hauptkonfiguration:

sudo nano /etc/nginx/nginx.conf

Fügen Sie Folgendes in den http-Block ein:

##
# Pagespeed Settings
##
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

Fügen Sie in jeden server-Block diese Location-Regeln ein:

# Anfragen für pagespeed-optimierte Ressourcen korrekt weiterleiten
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
    add_header "" "";
}
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }

Starten Sie Nginx neu, um die Änderungen zu übernehmen:

sudo service nginx restart

Installation überprüfen

Prüfen Sie, ob das Modul in den Build-Flags erscheint:

sudo /usr/sbin/nginx -V

In der Ausgabe sollte --add-module=./src/http/modules/ngx_pagespeed/ zu sehen sein.

Bestätigen Sie anschließend, dass das Modul tatsächlich läuft, indem Sie die Response-Header prüfen:

curl -I -p YOUR_SERVER_IP

Eine erfolgreiche Installation erkennen Sie am X-Page-Speed-Header in der Antwort:

HTTP/1.1 200 OK
Server: nginx
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

Dieser Header bestätigt: ngx_pagespeed ist installiert und läuft.

Hilfe

Bei Fragen oder wenn Sie Unterstützung brauchen, erreichen Sie uns jederzeit über das Ticketsystem — wir helfen Ihnen gern weiter!

Hilfe benötigt?Unsere Ingenieure helfen Ihnen kostenlos bei jeder Frage in wenigen MinutenKontaktieren Sie uns