GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Verwendung von ngx_pagespeed mit nginx auf Debian Jessie/testing

PageSpeed ​​Beta ist für nginx verfügbar, das nginx-Äquivalent von mod_pagespeed für Apache. Dieses Modul wendet Best Practices für die Webleistung auf Seiten und zugehörige Assets (CSS, JavaScript, Bilder) an und beschleunigt daher Ihre Website und verkürzt die Ladezeiten. Dieses Tutorial erklärt, wie man PageSpeed ​​mit nginx auf Debian Jessie/testing verwendet.

Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!

1 Erstellen von nginx mit PageSpeed

nginx unterstützt kein dynamisches Laden von Modulen, daher müssen wir es mit PageSpeed-Unterstützung neu erstellen. Wir werden nginx als .deb-Paket bauen, damit wir unsere bestehende nginx-Installation damit ersetzen können (oder es einfach auf anderen Systemen installieren können).

Erstellen Sie zuerst das Build-Verzeichnis:

cd /usr/src
mkdir Seitengeschwindigkeit &&cd Seitengeschwindigkeit

Stellen Sie sicher, dass Sie deb- und deb-src-Zeilen für Jessie/testing in /etc/apt/sources.list:

haben
vi /etc/apt/sources.list
[...]
deb http://ftp.de.debian.org/debian testing main contrib non-free
deb-src http://ftp.de.debian.org/debian testing main contrib non-free
[...]

Aktualisieren Sie Ihre Paketliste und installieren Sie einige Voraussetzungen:

apt-get update
apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip curl libcurl4-openssl-dev libossp-uuid-dev

Laden Sie die Nginx-Quellen und die Build-Abhängigkeiten herunter:

apt-get source nginx
apt-get build-dep nginx

Sehen wir uns unsere nginx-Version an:

ls -l

[email protected]:/usr/src/pagespeed# ls -l
insgesamt 2292
drwxr-xr-x 10 root root    4096 Feb  5 12:54 nginx-1.4.4
-rw -r--r--  1 root root 1568452 Jan  7 19:22 nginx_1.4.4-4.debian.tar.gz
-rw-r--r--  1 root root    2171 Jan  7 19:22 nginx_1 .4.4-4.dsc
-rw-r--r--  1 root root  768217 Nov 21 16:28 nginx_1.4.4.orig.tar.gz
[email protected]:/usr/src /Seitengeschwindigkeit#

Unsere Nginx-Version ist 1.4.4. Gehen wir zum Verzeichnis debian/modules der heruntergeladenen nginx-Quellen ...

cd /usr/src/pagespeed/nginx-1.4.4/debian/modules

... und laden Sie die PageSpeed-Quellen herunter (Sie können auf dieser Seite nach der neuesten Version suchen:https://github.com/pagespeed/ngx_pagespeed/releases - in diesem Beispiel ist die Version 1.7.30.3-beta; wenn Ihre Version abweicht , stellen Sie sicher, dass Sie es im Rest dieses Tutorials ersetzen):

wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.7.30.3-beta.zip
unzip release-1.7.30.3-beta.zip
cd ngx_pagespeed-release-1.7.30.3 -beta/
wget https://dl.google.com/dl/page-speed/psol/1.7.30.3.tar.gz
tar -xzvf 1.7.30.3.tar.gz

Bearbeiten wir die debian/rules-Datei:

vi /usr/src/pagespeed/nginx-1.4.4/debian/rules

In dieser Datei finden Sie vier config.status-Abschnitte (config.status.full, config.status.light, config.status.extras, config.status.naxsi). Fügen Sie die Zeile --add-module=$(MODULESDIR)/ngx_pagespeed-release-1.7.30.3-beta \ zu jedem von ihnen hinzu, direkt vor der Zeile $(CONFIGURE_OPTS)>[email protected], z. wie folgt:

[...]
config.status.full: config.env.full
        cd $(BUILDDIR_full) && CFLAGS="$(CFLAGS)" CORE_LINK="$(LDFLAGS)" ./configure  \
            --prefix=/usr/share/nginx \
            --conf-path=/etc/nginx/nginx.conf \
            --error-log-path=/var/log/nginx/error.log \
            --http-client-body-temp-path=/var/lib/nginx/body \
            --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
            --http-log-path=/var/log/nginx/access.log \
            --http-proxy-temp-path=/var/lib/nginx/proxy \
            --http-scgi-temp-path=/var/lib/nginx/scgi \
            --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
            --lock-path=/var/lock/nginx.lock \
            --pid-path=/run/nginx.pid \
            --with-pcre-jit \
            --with-debug \
            --with-http_addition_module \
            --with-http_dav_module \
            --with-http_geoip_module \
            --with-http_gzip_static_module \
            --with-http_image_filter_module \
            --with-http_realip_module \
            --with-http_spdy_module \
            --with-http_stub_status_module \
            --with-http_ssl_module \
            --with-http_sub_module \
            --with-http_xslt_module \
            --with-ipv6 \
            --with-mail \
            --with-mail_ssl_module \
            --add-module=$(MODULESDIR)/nginx-auth-pam \
            --add-module=$(MODULESDIR)/nginx-dav-ext-module \
            --add-module=$(MODULESDIR)/nginx-echo \
            --add-module=$(MODULESDIR)/nginx-upstream-fair \
            --add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module \
            --add-module=$(MODULESDIR)/ngx_pagespeed-release-1.7.30.3-beta \
            $(CONFIGURE_OPTS) >[email protected]
        touch [email protected]
[...]

Lassen Sie uns jetzt unsere neuen nginx-Pakete erstellen:

cd /usr/src/pagespeed/nginx-1.4.4/ && dpkg-buildpackage -b

Schauen wir uns anschließend die generierten Pakete an:

cd /usr/src/pagespeed
ls -l

[email protected]:/usr/src/pagespeed# ls -l
insgesamt 67260
drwxr-xr-x 10 root root     4096 Feb  5 13:18 nginx-1.4.4
-rw -r--r--  1 root root    67132 Feb  5 13:18 nginx_1.4.4-4_all.deb
-rw-r--r--  1 root root     4749 Feb   5 13:19 nginx_1.4.4-4_amd64 .changes
-rw-r--r--  1 root root  1568452 Jan  7 19:22 nginx_1.4.4-4.debian.tar.gz
-rw-r--r--  1 root root     2171 Jan  7 19:22 nginx_1.4.4-4.dsc
-rw-r--r--  1 root root   768217 Nov 21 16:28 nginx_1.4.4.orig.tar.gz
- rw-r--r--  1 root root    79288 Feb  5 13:18 nginx-common_1.4.4-4_all.deb
-rw-r--r--  1 root root    78448 Feb  5 13:18 nginx- doc_1.4.4-4_all.deb
-rw-r--r--  1 root root  2520834 Feb  5 13:19 nginx-extras_1.4.4-4_amd64.deb
-rw-r--r- -  1 root root 25480472 Feb  5 13:19 nginx-extras-dbg_1.4.4-4_amd64.deb
-rw-r--r--  1 root root  2372314 Feb  5 13:18 nginx-full_1.4.4-4_amd64 .deb
-rw-r--r--  1 root root 23850670 Feb  5 13:19 nginx-full-dbg_1.4.4-4_amd64.deb
-rw-r-- r-  1 root root  2349992 Feb  5 13:19 nginx-light_1.4.4-4_amd64.deb
-rw-r--r--  1 root root  3416998 Feb  5 13:19 nginx-light-dbg_1.4.4 -4_amd64.deb
-rw-r--r--  1 root root  2384044 Feb  5 13:19 nginx-naxsi_1.4.4-4_amd64.deb
-rw-r--r--  1 root root  3581602 Feb   5 13:19 nginx-naxsi-dbg_1.4.4-4_amd64.deb
-rw-r--r--  1 root root   309478 Feb  5 13:18 nginx-naxsi-ui_1.4.4-4_all. deb
[email protected]:/usr/src/pagespeed#

Wir können jetzt nginx mit PageSpeed-Unterstützung wie folgt installieren:

dpkg --install nginx-common_1.4.4-4_all.deb nginx_1.4.4-4_all.deb nginx-full_1.4.4-4_amd64.deb
/etc/init.d/nginx restart 

Prüfen wir, ob das PageSpeed-Modul erfolgreich erstellt wurde:

nginx -V

Sie sollten das ngx_pagespeed-Modul in der Ausgabe sehen:

[email protected]:/usr/src/pagespeed# nginx -V
nginx-Version:nginx/1.4.4
TLS-SNI-Unterstützung aktiviert
Konfigurationsargumente:--prefix=/usr/share /nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib /nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --with-pcre-jit --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with -http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_spdy_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-mail --with -mail_ssl_module --add-module=/usr/src/pagespeed/nginx-1.4.4/debian/modules/nginx-auth -pam --add-module=/usr/src/pagespeed/nginx-1.4.4/debian/modules/nginx-dav-ext-module --add-module=/usr/src/pagespeed/nginx-1.4.4 /debian/modules/nginx-echo --add-module=/usr/src/pagespeed/nginx-1.4.4/debian/modules/nginx-upstream-fair --add-module=/usr/src/pagespeed/nginx -1.4.4/debian/modules/ngx_http_substitutions_filter_module --add-module=/usr/src/pagespeed/nginx-1.4.4/debian/modules/ngx_pagespeed-release-1.7.30.3-beta
[email protected] :/usr/src/pagespeed#

2 Konfigurieren von PageSpeed

Um PageSpeed ​​zu aktivieren, öffnen Sie /etc/nginx/nginx.conf...

vi /etc/nginx/nginx.conf

... und fügen Sie die Zeilen pagespeed hinzu; und Pagespeed FileCachePath /var/ngx_pagespeed_cache; vor vhosts:

[...]
        pagespeed on;
        pagespeed FileCachePath /var/ngx_pagespeed_cache;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
[...]
ein

Erstellen Sie das Cache-Verzeichnis und laden Sie nginx neu:

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

/etc/init.d/nginx reload

Lassen Sie uns eine Seite laden und prüfen, ob PageSpeed ​​in der Ausgabe erwähnt wird:

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

[email protected]:/usr/src/pagespeed# curl -I -p http://localhost|grep X-Page-Speed
  % Total    % Empfangen % Xferd  Durchschnittliche Geschwindigkeit   Zeit    Zeit     Zeit  Aktuell
                              Laden. Hochladen   Gesamt   Ausgaben    Linke  Geschwindigkeit
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
X-Page- Geschwindigkeit: 1.7.30.3-3721
[email protected]:/usr/src/pagespeed#

Jetzt können wir PageSpeed ​​einzeln konfigurieren oder jeden vhost, z.B. so:

vi /etc/nginx/sites-available/example.com.vhost
server {
[...]
  # let's speed up PageSpeed by storing it in the super duper fast memcached
  pagespeed MemcachedThreads 1;
  pagespeed MemcachedServers "localhost:11211";

  # Filter settings
  pagespeed RewriteLevel CoreFilters;
  pagespeed EnableFilters collapse_whitespace,remove_comments;

  #  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$" {
  }
  location /ngx_pagespeed_statistics {
    allow 127.0.0.1;
    deny all;
  }
  location /ngx_pagespeed_global_statistics {
    allow 127.0.0.1;
    deny all;
  }
  location /ngx_pagespeed_message {
    allow 127.0.0.1;
    deny all;
  }
  location /pagespeed_console {
    allow 127.0.0.1;
    deny all;
  }
[...]
}

Die wichtige Zeile ist die Zeile pagespeed EnableFilters, die PageSpeed ​​mitteilt, welche Filter angewendet werden sollen. Eine Liste aller Filter finden Sie hier:http://ngxpagespeed.com/ngx_pagespeed_example/

Vergessen Sie nicht, nginx danach neu zu starten:

/etc/init.d/nginx reload

Wenn Sie jetzt eine Seite öffnen und sich die Header ansehen (z. B. mit dem Live-HTTP-Header-Add-on für FireFox), sollten Sie eine X-Page-Speed-Zeile sehen:

Sie können die HTML-Quellen Ihrer Seiten überprüfen, um festzustellen, ob die PageSpeed-Filter wie erwartet funktionieren.

  • Blog der Google-Entwickler:http://googledevelopers.blogspot.nl/2013/04/speed-up-your-sites-with-pagespeed-for.html
  • ngx_pagespeed:https://developers.google.com/speed/pagespeed/ngx
  • Erstellen/Verwenden von PageSpeed:https://github.com/pagespeed/ngx_pagespeed
  • Beispiele für ngx_pagespeed-Filter:http://ngxpagespeed.com/ngx_pagespeed_example/

Über den Autor

Falko Timme ist Der Besitzer von Timme Hosting (ultraschnelles Nginx-Webhosting). Er ist der Hauptbetreuer von HowtoForge (seit 2005) und einer der Kernentwickler von ISPConfig (seit 2000). Er hat auch zum O'Reilly-Buch "Linux System Administration" beigetragen.


Debian
  1. Installieren Sie Nginx mit ngx_pagespeed unter CentOS 7

  2. So installieren Sie WebDAV mit Lighttpd unter Debian 8 (Jessie)

  3. So installieren Sie MySQL v5.7 mit apt-get unter Debian 8 Jessie

  4. Installieren Sie Habari mit Nginx auf Debian 8

  5. Installieren Sie Plone mit Nginx auf einem Debian 8 VPS

So installieren Sie Nextcloud 10 mit Nginx auf Debian 8

So richten Sie ModSecurity mit Nginx unter Debian/Ubuntu ein

So aktivieren Sie das HTTP2-Protokoll mit Nginx auf Debian 8 Jessie Server

So installieren Sie phpMyAdmin mit Nginx unter Debian 11 Bullseye

So installieren Sie phpMyAdmin mit Nginx unter Debian 11

Verwenden von RoundCube-Webmail mit ISPConfig 3 auf Debian Wheezy (nginx)