GNU/Linux >> Znalost Linux >  >> Ubuntu

Zkompilujte Nginx s modulem ngx_pagespeed na Ubuntu 16.04

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_url 

Uložte a zavřete konfigurační soubor bloku serveru. Poté znovu načtěte Nginx.

sudo systemctl reload nginx

8. 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-Speed

Uvidíte X-Page-Speed ​​a číslo verze.

X-Page-Speed:1.11.33.2-7423

9. 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 nginx

Chcete-li zobrazit, které balíčky jsou pozastaveny:

apt-mark showhold

Ně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.


Ubuntu
  1. Nainstalujte Nginx s ngx_pagespeed na CentOS 7

  2. Jak zabezpečit Nginx pomocí Letsencrypt na Ubuntu 20.04

  3. Nainstalujte PHP 7.1 s Nginx na Ubuntu 16.04

  1. Ubuntu 20.04:WordPress s instalací Nginx

  2. Jak nainstalovat WordPress s Nginx na Ubuntu 18.04

  3. Nasaďte Modsecurity s Nginx na Ubuntu 20.04 LTS

  1. Jak nainstalovat phpMyAdmin s Nginx na Ubuntu 18.04

  2. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  3. Jak nainstalovat Magento s Nginx na Ubuntu 15.10