GNU/Linux >> Znalost Linux >  >> Debian

Použití ngx_pagespeed s nginx Na Debianu Jessie/testing

PageSpeed ​​Beta je k dispozici pro nginx, ekvivalent nginx mod_pagespeed pro Apache. Tento modul aplikuje osvědčené postupy pro výkon webu na stránky a související aktiva (CSS, JavaScript, obrázky), a proto zrychluje váš web a zkracuje dobu načítání. Tento tutoriál vysvětluje, jak používat PageSpeed ​​s nginx na Debian Jessie/testing.

Neposkytuji žádnou záruku, že to pro vás bude fungovat!

1 Vytváření nginx pomocí PageSpeed

nginx nepodporuje dynamické načítání modulů, proto jej musíme přebudovat s podporou PageSpeed. Vytvoříme nginx jako balíček .deb, abychom jím mohli nahradit naši stávající instalaci nginx (nebo ji snadno nainstalovat na jiné systémy).

Nejprve vytvořte adresář sestavení:

cd /usr/src
rychlost stránky mkdir &&rychlost stránky cd

Ujistěte se, že máte řádky deb a deb-src pro Jessie/testing v /etc/apt/sources.list:

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
[...]

Aktualizujte svůj seznam balíčků a nainstalujte některé předpoklady:

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

Stáhněte si zdroje nginx a závislosti sestavení:

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

Pojďme se podívat na naši verzi nginx:

ls -l

[chráněno e-mailem]:/usr/src/pagespeed# ls -l
celkem 2292
drwxr-xr-x 10 kořen     4096 5. února  5 12:54 nginx-1.4.4
-rw -r--r--  1 kořen 1568452 7. ledna 19:22 nginx_1.4.4-4.debian.tar.gz
-rw-r--r--  1 kořen kořen    2171 2. ledna 27 inx19:.4.4-4.dsc
-rw-r--r--  1 kořenový kořen  768217 21. listopadu 16:28 nginx_1.4.4.orig.tar.gz
[e-mail chráněný]:/usr/src /pagespeed#

Naše verze nginx je 1.4.4. Pojďme do adresáře debian/modules stažených zdrojů nginx...

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

... a stáhněte si zdroje PageSpeed ​​(nejnovější vydání můžete zkontrolovat na této stránce:https://github.com/pagespeed/ngx_pagespeed/releases – v tomto příkladu je verze 1.7.30.3-beta; pokud se vaše verze liší , nezapomeňte jej nahradit ve zbytku tohoto kurzu):

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

Upravme soubor debian/rules:

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

V tomto souboru najdete čtyři sekce config.status (config.status.full, config.status.light, config.status.extras, config.status.naxsi). Přidejte řádek --add-module=$(MODULESDIR)/ngx_pagespeed-release-1.7.30.3-beta \ ke každému z nich přímo před řádek $(CONFIGURE_OPTS)>[email protected], např. takto:

[...]
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]
[...]

Nyní pojďme vytvořit naše nové balíčky nginx:

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

Poté se podívejme na vygenerované balíčky:

cd /usr/src/pagespeed
ls -l

[e-mail chráněný]:/usr/src/pagespeed# ls -l
celkem 67260
drwxr-xr-x 10 kořenový kořen     4096 5. února    13:18 nginx-1.4.4
-rw -r--r--  1 kořenový kořen    67132 5. února  5 13:18 nginx_1.4.4-4_all.deb
-rw-r--r--  1 kořenový kořen     4749 4. února 45 am 13:1 .changes
-rw-r--r--  1 kořenový kořen  1568452 7. ledna 19:22 nginx_1.4.4-4.debian.tar.gz
-rw-r--r--  1 kořen kořen     2171 Jan  7 19:22 nginx_1.4.4-4.dsc
-rw-r--r--  1 kořen kořen   768217 21. listopadu 16:28 nginx_1.4.4.orig. rw-r--r--  1 kořen     79288 5. února 13:18 nginx-common_1.4.4-4_all.deb
-rw-r--r--  1 kořen     in 5 5 13. února doc_1.4.4-4_all.deb
-rw-r--r--  1 kořenový kořen  2520834 5. února   5 13:19 nginx-extras_1.4.4-4_amd64.deb
-rw-r--r- -  1 kořen 25480472 Únor  5 13:19 nginx-extras-dbg_1.4.4-4_amd64.deb
-rw-r--r--  1 kořen 4 2372314 3. 4. 4. 4. 4. 3. 1. 4. 4. 4. 1_1 .deb
-rw-r--r--  1 kořenový kořen 23850670 5. února  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 _1. 45. února 4db -4_amd64.deb
-rw-r--r--  1 kořenový kořen  2384044 5. února 13:19 nginx-naxsi_1.4.4-4_amd64.deb
-rw-r--r--  1 ro root  3581602 Únor  5 13:19 nginx-naxsi-dbg_1.4.4-4_amd64.deb
-rw-r--r--  1 kořen kořen   309478 Únor 5 5 13:18-18.4.4. deb
[e-mail chráněný]:/usr/src/pagespeed#

Nyní můžeme nainstalovat nginx s podporou PageSpeed ​​následovně:

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 

Pojďme zkontrolovat, zda byl modul PageSpeed ​​sestaven úspěšně:

nginx -V

Ve výstupu byste měli vidět modul ngx_pagespeed:

[e-mail chráněný]:/usr/src/pagespeed# nginx -V
verze nginx:nginx/1.4.4
Podpora TLS SNI povolena
konfigurace argumentů:--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 -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
[chráněno e-mailem] :/usr/src/pagespeed#

2 Konfigurace PageSpeed

Chcete-li povolit PageSpeed, otevřete /etc/nginx/nginx.conf...

vi /etc/nginx/nginx.conf

... a přidejte rychlost stránky řádků; a rychlost stránky FileCachePath /var/ngx_pagespeed_cache; před libovolnými vhosty:

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

        ##
        # Virtual Host Configs
        ##

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

Vytvořte adresář mezipaměti a znovu načtěte nginx:

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

/etc/init.d/nginx reload

Pojďme načíst stránku a zkontrolovat, zda je ve výstupu zmíněna PageSpeed:

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

[e-mail protected]:/usr/src/pagespeed# curl -I -p http://localhost|grep X-Page-Speed
  % Celkem    % Přijato % Xferd  Průměrná rychlost   Doba                                                    Nahrávání   Celkem   Utracená    Doleva  Rychlost
  0     0    0     0     0     0       0        0 --:--:-- ---:--:-- - - - :- - - - - - :Rychlost: 1.7.30.3-3721
[e-mail chráněno]:/usr/src/pagespeed#

Nyní můžeme konfigurovat PageSpeed ​​jednotlivě nebo každý vhost, např. takhle:

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;
  }
[...]
}

Důležitým řádkem je řádek Pagespeed EnableFilters, který říká PageSpeed, které filtry má použít. Seznam všech filtrů naleznete zde:http://ngxpagespeed.com/ngx_pagespeed_example/

Poté nezapomeňte restartovat nginx:

/etc/init.d/nginx reload

Když nyní otevřete stránku a podíváte se na záhlaví (např. pomocí doplňku Live HTTP headers pro FireFox), měli byste vidět řádek rychlosti x stránky:

Můžete zkontrolovat zdroje HTML svých stránek a zjistit, zda filtry PageSpeed ​​fungují podle očekávání.

  • Blog Google Developers:http://googledevelopers.blogspot.nl/2013/04/speed-up-your-sites-with-pagespeed-for.html
  • ngx_pagespeed:https://developers.google.com/speed/pagespeed/ngx
  • Vytváření/použití PageSpeed:https://github.com/pagespeed/ngx_pagespeed
  • Příklady filtru ngx_pagespeed:http://ngxpagespeed.com/ngx_pagespeed_example/

O autorovi

Falko Timme je vlastníkem Timme Hosting (ultrarychlý webhosting nginx). Je hlavním správcem HowtoForge (od roku 2005) a jedním z hlavních vývojářů ISPConfig (od roku 2000). Přispěl také do O'Reillyho knihy „Linux System Administration“.


Debian
  1. Jak vytvořit nginx pomocí modulu Google PageSpeed ​​na Debianu 8 (Jessie)

  2. Nastavení replikace Master-Master s MySQL na Debian 8 (Jessie)

  3. Jak nainstalovat Nginx na Debian 8 (Jessie)

  1. Nainstalujte Nginx s ngx_pagespeed na CentOS 7

  2. Jak nainstalovat WebDAV s Lighttpd na Debian 8 (Jessie)

  3. Nainstalujte Plone s Nginx na Debian 8 VPS

  1. Jak nainstalovat MySQL v5.7 pomocí apt-get na Debian 8 Jessie

  2. Nainstalujte Habari s Nginx na Debian 8

  3. Jak nainstalovat WonderCMS s Nginx na Debian 11