ngx_pagespeed je modul Nginx s otevřeným zdrojovým kódem, který automaticky používá osvědčené postupy k optimalizaci rychlosti webu. V tomto tutoriálu probereme, jak zkompilovat Nginx s modulem ngx_pagespeed na Ubuntu 16.04 LTS.
1. Zálohujte konfigurační soubory Nginx
Jakmile je Nginx zkompilován a nainstalován, vaše původní konfigurační soubory Nginx budou přepsány. Následující příkaz můžete použít k zálohování hlavního konfiguračního souboru a souborů bloků serveru do vašeho domovského adresáře. Vlnovka představuje váš domovský adresář.
cp /etc/nginx/nginx.conf /etc/nginx/sites-available/*.conf /etc/nginx/conf.d/*.conf ~
2. Přidejte oficiální úložiště Nginx
Výukový program demonstruje kompilaci nejnovější verze hlavní řady Nginx, 1.11.1 v době psaní tohoto článku. Úložiště Ubuntu 16.04 má Nginx 1.10. Přidáme oficiální úložiště Nginx, jak je znázorněno níže.
Nejprve stáhněte klíč Nginx GPG a importujte jej do systému Ubuntu 16.04.
wget http://nginx.org/keys/nginx_signing.keysudo apt-key add nginx_signing.key
Poté upravte sources.list
soubor.
sudo nano /etc/apt/sources.list
Přidejte následující dva řádky na konec tohoto souboru. Řádek deb-src nám umožňuje stahovat zdrojové balíčky Nginx pomocí apt source
příkaz.
deb http://nginx.org/packages/mainline/ubuntu/ xenial nginxdeb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx
Stiskněte Ctrl+O pro uložení souboru. Stisknutím Ctrl+X soubor zavřete. Potom aktualizujte místní index balíčků.
aktualizace sudo apt
Nyní je oficiální úložiště Nginx přidáno do Ubuntu 16.04.
3 Stáhnout zdrojový balíček Nginx
Vytvoříme nginx
adresář pod domovským adresářem pro uložení zdrojů Nginx a poté cd do tohoto adresáře.
mkdir ~/nginx &&cd ~/nginx
Nainstalujte dpkg-dev
a stáhněte si zdrojový balíček Nginx pomocí níže uvedeného příkazu:
sudo apt install dpkg-devsudo apt source nginx
Podívejte se na stažené soubory.
ls ~/nginx/
Výstup:
nginx-1.11.1 nginx_1.11.1-1~xenial.dscnginx_1.11.1-1~xenial.debian.tar.xz nginx_1.11.1.orig.tar.gz
4. Stáhněte si zdrojový balíček ngx_pagespeed
Ke kompilaci Nginx s modulem ngx_pagespeed potřebujeme také zdrojový balíček ngx_pagespeed. Přejděte na stránku stahování Github ngx_pagespeed. ( https://github.com/pagespeed/ngx_pagespeed/releases
) Stáhněte si nejnovější beta verzi do svého domovského adresáře.
v1.11.33.2-beta v době psaní tohoto článku. Možná budete muset změnit číslo verze.
cd ~wget https://codeload.github.com/pagespeed/ngx_pagespeed/zip/v1.11.33.2-beta
rozbalte jej:
sudo apt-get install unzipunzip v1.11.33.2-beta
cd do nově vytvořeného adresáře:
cd ngx_pagespeed-1.11.33.2-beta/
Potřebujeme také stáhnout knihovnu psol. (Knihovna PageSpeed Optimization Library) a extrahujte ji. Číslo verze odpovídá číslu verze rychlosti stránky.
wget https://dl.google.com/dl/page-speed/psol/1.11.33.2.tar.gztar xvf 1.11.33.2.tar.gz
Vytvoří psol
adresář pod ngx_pagespeed-1.11.33.2-beta
adresář a tam to má být.
5. Přidejte modul ngx_pagespeed do pravidel kompilace Nginx
Upravte soubor s pravidly kompilace Nginx.
sudo nano ~/nginx/nginx-1.11.1/debian/rules
Na konci COMMON_CONFIGURE_ARGS
oddílu, přidejte následující řádek. Nahraďte username
s vaším skutečným uživatelským jménem. Tento řádek určuje umístění modulu ngx_pagespeed.
--add-module=/home/username/ngx_pagespeed-1.11.33.2-beta
Tento tutoriál stáhne zdrojovou stránku ngx_pagespeed do domovského adresáře. Pokud používáte účet root, nahraďte /home/username
s /root
. protože domovský adresář pro uživatele root je /root
.
Všimněte si také, že musíte přidat zpětné lomítko u --with-ld-opt
řádek jako na snímku obrazovky níže. Pokud tak neučiníte, –add-module řádek, který jste přidali, bude při kompilaci Nginx ignorován.
Nyní soubor uložte a zavřete.
6. Spusťte kompilaci!
Ujistěte se, že jste ve zdrojovém adresáři Nginx.
cd ~/nginx/nginx-1.11.1/
Nainstalujte všechny potřebné závislosti k sestavení našeho deb balíčku Nginx.
sudo apt build-dep nginx
Nyní použijte následující příkaz k vytvoření balíčku deb.
sudo dpkg-buildpackage -b
Vezměte si šálek kávy a počkejte několik minut. Na jednojádrovém OpenVZ VPS tento proces sestavení trval přibližně 20 minut. Až to bude hotové, v ~/nginx/ bude 7 deb souborů adresář. Potřebujeme pouze nainstalovat nginx_1.11.1-1~xenial_amd64.deb
nebo nginx_1.11.1-1~xenial_i386.deb
v závislosti na architektuře vašeho OS. Ostatní jsou balíček dynamických modulů Nginx a balíček ladění. Pokud chcete, můžete je také nainstalovat.
Pokud jste již Nginx nainstalovali, je čas odstranit starou verzi a poté nainstalovat novou verzi.
sudo apt remove nginx nginx-common nginx-fullcd ~/nginxsudo dpkg -i nginx_1.11.1-1~xenial_amd64.deb
nebo
sudo dpkg -i nginx_1.11.1-1~xenial_i386.deb
Nyní začněme Nginx.
sudo systemctl spustit nginx
Pokud se zobrazí následující chybová zpráva.
Nepodařilo se spustit nginx.service:Jednotka nginx.service je maskovaná.
Poté odmaskujte nginx a zadejte znovu příkaz start.
sudo systemctl odmaskovat nginx
Všimněte si, že proces Nginx může běžet jako uživatel nginx
nebo www-data
. Toto lze změnit úpravou prvního řádku v /etc/nginx/nginx.conf
soubor. Jen se ujistěte, že Nginx běží jako stejný uživatel s PHP-FPM.
Nyní zkontrolujte konfigurační argumenty Nginx.
sudo nginx -V
Pokud na konci uvidíte následující řádek, modul ngx_pagespeed byl úspěšně přidán do Nginx.
--add-module=/home/username/ngx_pagespeed-1.11.33.2-beta
7. Povolit modul ngx_pagespeed
PageSpeed je nainstalován spolu s Nginx, ale ve výchozím nastavení je zakázán. Před aktivací vám doporučuji otestovat rychlost vašeho webu na pingdom.com nebo webpagetest.org. Věnujte pozornost velikosti stránky, počtu požadavků, době načítání stránky atd. Po povolení PageSpeed proveďte test znovu, abyste oba výsledky porovnali.
Vytvořte složku pro mezipaměti pro rychlost stránek a změňte její vlastnictví na uživatele Nginx (www-data nebo nginx), aby ji mohl zapisovat Nginx.
sudo mkdir -p /var/ngx_pagespeed_cachesudo chown -R www-data:www-data /var/ngx_pagespeed_cache
Nyní upravte konfigurační soubor bloku serveru Nginx.
sudo nano /etc/nginx/conf.d/vase-domena.conf
Přidejte následující direktivy pagespeed v sekci server.
# povolit modul pagespeed na tomto serveru blockpagespeed on;# Musí existovat a být zapisovatelný pomocí nginx. Pro nejlepší výkon použijte tmpfs.pagespeed FileCachePath /var/ngx_pagespeed_cache;# Zajistěte, aby požadavky na zdroje optimalizované pro rychlost stránky šly do obslužné rutiny rychlosti stránky# a žádná nadbytečná záhlaví nezískala set.location ~ "\.pagespeed\.([a-z]\.)?[ a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" "";}umístění ~ "^/pagespeed_static/" { }umístění ~ "^/ngx_pagespeed_beacon$" { } pagespeed RewriteLevel CoreFilters;
Pokud hostujete více webových stránek na jednom serveru, přidejte výše uvedené direktivy pagespeed do každého konfiguračního souboru bloku serveru, abyste na každém z nich povolili rychlost stránky.
Poslední sada direktiv CoreFilters
jako úroveň přepisu. PageSpeed nabízí 3 úrovně přepisování:CoreFilter
, PassThrough
a OptimizeForBandwidth
. CoreFilter
je výchozí, protože obsahuje filtry, které jsou pro většinu webů považovány za bezpečné.
CoreFilter
obsahuje následující filtry.
add_head combination_css Combined_javascript convert_meta_tags extend_cache fallback_rewrite_css_urls flatten_css_imports inline_css inline_import_to_link inline_javascript rewrite_css rewrite_images rewrite_javascript rewrite_style_attributes_with_urlUložte a zavřete konfigurační soubor bloku serveru. Poté znovu načtěte Nginx.
sudo systemctl reload nginx8. Zkontrolujte, zda PageSpeed funguje
Přejděte na svůj web. Několikrát obnovte stránku a poté zkontrolujte zdroj stránky. Stiskněte Ctrl+F klíč a vyhledávání pagespeed . Uvidíte, že mnoho zdrojů vašeho webu bylo zpracováno rychlostí stránky. Některé soubory css a soubory javascript jsou sloučeny do jednoho souboru. Pokud používáte prohlížeč Google Chrome, uvidíte, že obrázky na vašem webu byly převedeny na web formát. webp může výrazně snížit velikost souboru obrázku.
Můžete také zjistit, že ngx_pagespeed funguje porovnáním testu rychlosti vašeho webu.
Také na svém serveru můžete zadat následující příkaz:
curl -I -p http://vase-domena.com| grep X-Page-SpeedUvidíte X-Page-Speed a číslo verze.
X-Page-Speed:1.11.33.2-74239. Zablokujte aktualizaci Nginx
Pokud je v úložišti k dispozici novější verze Nginx, upgrade apt-get příkaz ve výchozím nastavení upgraduje Nginx a váš modul ngx_pagespeed bude pryč. Musíme tedy zabránit upgradu Nginxu. Toho lze dosáhnout následujícím příkazem:
sudo apt-mark hold nginxChcete-li zobrazit, které balíčky jsou pozastaveny:
apt-mark showholdNěkteré direktivy pagespeed, které můžete chtít přidat do konfiguračních souborů serveru Nginx, které nejsou v CoreFilters.
pagespeed EnableFilters kolaps_whitespace;pagespeed EnableFilters lazyload_images;pagespeed EnableFilters insert_dns_prefetch;
Po úpravě konfiguračních souborů bloku serveru nezapomeňte znovu načíst Nginx.
Podrobné vysvětlení každého filtru najdete na stránce Filtr Google PageSpeed.
Připomínky, dotazy nebo návrhy jsou vždy vítány. Pokud vám tento příspěvek přišel užitečný, sdílejte jej prosím se svými přáteli na sociálních sítích! Zůstaňte naladěni na další výukové programy pro Linux.
Získejte předpověď počasí v Terminálu s Wego Nainstalujte Vivaldi 1.2 na Ubuntu 16.04 prostřednictvím oficiálního úložiště APTUbuntu