GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Nginx Google Pagespeed na Debian 11 Bullseye

Modul PageSpeed Google , také známý jako mod_PageSpeed, je open-source balíček Apache HTTP nebo Nginx na úrovni serveru s moduly, které pomáhají optimalizovat váš web pomocí různých filtrů na stránky, které optimalizují serverové styly, JavaScript a soubory HTML a obrázky prostřednictvím ukládání do mezipaměti a přepisování mezi nejlepšími. funkce.

V následujícím tutoriálu se naučíte, jak nainstalovat a provést základní nastavení s Nginx Pagespeed na Debian 11 Bullseye.

Aktualizujte systém Debian

Aktualizujte svůj Debian operační systém, abyste se ujistili, že všechny existující balíčky jsou aktuální:

sudo apt update && sudo apt upgrade -y

Instalovat závislosti

K instalaci nebo kontrole, zda jsou balíčky nainstalovány, použijte následující příkaz.

sudo apt install apt-transport-https unzip wget curl git dpkg-dev uuid-dev make build-essential gnupg2 ca-certificates lsb-release debian-archive-keyring -y

Instalovat nejnovější hlavní řadu Nginx nebo stabilní

Pro rychlost stránky budete muset zkompilovat zdroj Nginx, ale vzhledem k tomu, že se snažíte zlepšit rychlost svého webu, důrazně se doporučuje importovat a nainstalovat nejnovější verzi Nginx, která je k dispozici mezi hlavní nebo stabilní verzí.

Nginx doporučuje používat hlavní verzi, ale stabilní je stejně vhodná pro uživatele, kteří nechtějí tolik upgradovat.

IMPORTOVAT POUZE 1 ÚLOŽIŠTĚ, NE OBA.

curl -sSL https://packages.sury.org/nginx-mainline/README.txt | sudo bash -x

Možnost 2 – Import Nginx Stable

curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x

Dále spusťte aktualizaci apt update k synchronizaci.

sudo apt update

Nyní začněte instalovat Nginx; výukový program nainstaluje hlavní řadu nginx .

sudo apt install nginx-core nginx-common nginx nginx-full -y

Aktivujte službu pomocí následujícího příkazu.

sudo systemctl enable nginx --now

V importovaném úložišti si všimnete dalších modulů dostupných v této verzi, zejména podpory brotli, kterou můžete nainstalovat pomocí následujících kroků níže.

Otevřete soubor nginx.conf konfigurační soubor:

nano /etc/nginx/nginx.conf

Nyní přidejte další řádky dříve do HTTP{} sekce:

brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
  application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
  application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
  font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
  image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;

Dále spusťte Nginx suchý běh.

sudo nginx -t

Výstupem by měl být příklad níže; pokud ne, opravte chybu, kterou jste udělali, a opravte ji.

Příklad:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Restartujte službu Nginx, aby se změny projevily.

sudo systemctl restart nginx

Stáhnout zdrojový balíček Nginx

Budete muset zkompilovat modul ngx_pagespeed ze zdroje jako dynamický modul. Pokud jste to ještě neudělali, probereme, jak vytvořit adresář, který můžete zkompilovat pro tento modul dnes i v budoucnu. Pokaždé, když aktualizujete svůj Nginx prostřednictvím správce balíčků APT, musíte znovu stáhnout zdroj a znovu zkompilovat dynamické moduly.

Za prvé, ve výchozím nastavení deb-src úložiště není přidáno a povoleno. Toto je třeba naimportovat a přidat, než si budete moci stáhnout zdroj Nginx, jinak se získá nesprávná verze.

echo "deb-src https://packages.sury.org/nginx-mainline/ bullseye main
" | sudo tee -a /etc/apt/sources.list.d/nginx-mainline.list

Možnost 2 – Nginx Stable Deb-Source

echo "deb-src https://packages.sury.org/nginx-mainline/ bullseye main" | sudo tee -a /etc/apt/sources.list.d/nginx.list

Dále spusťte aktualizaci APT pro synchronizaci nového přírůstku.

sudo apt update

Vytvořte zdrojový adresář Nginx.

sudo mkdir -p /usr/local/src/nginx

Nyní přejděte do nově vytvořeného adresáře pomocí CD.

cd /usr/local/src/nginx

Dále si stáhněte zdrojový balíček Nginx podle níže uvedeného příkazu sudo.

sudo apt source nginx

Upozorňujeme, že se zobrazí zpráva zamítnuta. To lze ignorovat.

Příklad:

Dále zadejte následující příkaz pro potvrzení stažení zdroje.

ls -l

Výstup by měl být např.

Klonování úložiště ngx_pagespeed

V další části průvodce si budete muset stáhnout „ngx_pagespeed“ zdrojový balíček. Doporučuje se naklonovat zdroj pagespeed pomocí Git, protože později můžete snadno stáhnout aktualizace a v budoucnu znovu zkompilovat.

V této části máte aktuálně dvě možnosti v1.13.35.2-stabilní větev úložiště nebo v1.14.33.1-RC1 pre-release pobočky. Oba mají nyní problémy. Doporučujeme navštívit Git a přečíst si seznam aktuálních problémů abyste zjistili, zda by vás některý ovlivnil více než ten druhý.

Výukový program zjistil, že instalace předběžné verze fungovala nejlépe. Jakkoli vám stabilita může být prospěšnější, je to těžké.

Nejprve vložte CD do adresáře:

cd /usr/local/src

Nyní naklonujte zdroj git ngx_pagespeed:

sudo git clone https://github.com/apache/incubator-pagespeed-ngx.git

Další část lze provést dvěma různými způsoby, stabilně nebo před vydáním. Oba budou uvedeny níže.

Možnost 2. Stáhnout Stable ngx_pagespeed

CD do nově naklonovaného ngx_pagespeed zdroj, podívejte se na nejnovější stabilní větev.

cd incubator-pagespeed-ngx

Podívejte se na nejnovější verzi se stabilní rychlostí stránek.

sudo git checkout latest-stable

Nyní byste si všimli na konci výstupu PSOL_BINARY_URL Vytisknout. Odkaz pro stažení PSOL URL je knihovna pro optimalizaci rychlosti stránek, kterou je třeba stáhnout z pobočky, kterou jste použili, z pokladny GIT.

Chcete-li najít adresu URL knihoven ke stažení, zadejte následující příkaz k odhalení.

Pomocí příkazu cat vyhledejte adresu URL:

cat PSOL_BINARY_URL

Příklad výstupu:

https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz

Všimněte si, že výstup má $BIT_SIZE_NAME . V tomto případě bude většina lidí x64 .

Dále si stáhněte knihovny PageSpeed ​​Optimization Libraries (PSOL) pokračovat.

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

Nyní rozbalte archiv. Tím se vytvoří psol adresář automaticky a rozbalte soubory. Získáte výtisk s dlouhým seznamem, ale všechny knihovny jsou připraveny ke kompilaci jako dynamický modul s vaším zdrojem Nginx, jakmile bude hotovo.

sudo tar xvf 1.13.35.2-x64.tar.gz

Možnost 2. Stáhnout předběžnou verzi ngx_pagespeed

Proces používání modulu ngx_pagespeed před vydáním a knihoven PSOL zůstává stejný jako u stabilní větve. Takže vše, co uděláte, je změnit některé možnosti, jak je uvedeno níže.

CD do zdroje klonu ngx_pagespeed, podívejte se na nejnovější větev předběžného vydání. Všimněte si, že předběžná větev se s největší pravděpodobností v budoucnu změní.

Proto byste měli navštívit pobočky projektu Github a najít nejnovější. V současné době je větev 36 předběžnou větví s v1.14.33.1-RC1 . Přeskočíme krok o klonování, vraťte se do „stabilní“, kde najdete pokyny.

cd incubator-pagespeed-ngx

Podívejte se na předběžnou verzi pagespeed s číslem 36:

sudo git checkout 36

Nyní byste si všimli na konci výstupuPSOL_BINARY_URL Vytisknout. Odkaz pro stažení PSOL URL je knihovna pro optimalizaci rychlosti stránek, kterou je třeba stáhnout z pobočky, kterou jste použili, z pokladny GIT.

Chcete-li najít adresu URL knihoven ke stažení, zadejte následující příkaz k odhalení.

cat PSOL_BINARY_URL

Příklad výstupu:

https://dist.apache.org/repos/dist/release/incubator/pagespeed/1.14.36.1/x64/psol-1.14.36.1-apache-incubating-$BIT_SIZE_NAME.tar.gz

Všimněte si, že výstup má $BIT_SIZE_NAME . V tomto případě bude většina lidí x64.

Dále si stáhněte knihovny PageSpeed ​​Optimization Libraries (PSOL) pokračovat.

wget https://dist.apache.org/repos/dist/release/incubator/pagespeed/1.14.36.1/x64/psol-1.14.36.1-apache-incubating-$BIT_SIZE_NAME.tar.gz

Rozbalte archivy.

sudo tar xvf psol-1.14.36.1-apache-incubating-x64.tar.gz 

Kompilace Nginx s modulem ngx_pagespeed

Dále zkompilujete zdrojový kód Nginx, který jste si stáhli pomocí modulu ngx_pagespeed, který jste si stáhli pomocí knihoven PSOL.

Nejprve vložte CD do zdrojového adresáře Nginx. Všimněte si, že číslo verze Nginx se může lišit.

Pouze příklad:

cd /usr/local/src/nginx/nginx-1.21.4/

Dále nainstalujte závislosti sestavení pro zdroj Nginx.

sudo apt build-dep nginx -y

Nyní zkompilujete modul ngx_pagespeed s příznakem–with-compact . Tento proces učiní budoucí souborový modul ngx_pagespeed.so kompatibilní s vaším aktivním serverem Nginx.

sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/incubator-pagespeed-ngx

Dále použijte příkaz make the modules . Tento proces bude trvat maximálně 1 minutu.

sudo make modules

Nyní zkopírujte nově vytvořenýngx_pagespeed.so“ modul do vašeho aktivního adresáře serveru Nginx. Umístění se mohou lišit v závislosti na vaší instalaci, ale většina lidí by měla být stejná.

sudo cp objs/ngx_pagespeed.so /etc/nginx/modules/

Alternativa:

sudo cp objs/ngx_pagespeed.so /usr/share/nginx/modules/

Načíst modul ngx_pagespeed v Nginx

Nyní nastal čas načíst modul ngx_pagespeed v Nginx. Použijeme k tomu textový editor nano. Nejprve otevřete soubor nginx.conf soubor.

sudo nano /etc/nginx/nginx.conf

Nyní přidejte následující řádek.

 load_module modules/ngx_pagespeed.so; ##### insert with other modules ###

Příklad:

Chcete-li to dokončit, otestujte konfiguraci Nginx pomocí příkazu suchého spuštění a pokud je vše v pořádku, restartujte server Nginx.

sudo nginx -t

Příklad:

 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
 nginx: configuration file /etc/nginx/nginx.conf test is successful

Pokud je syntaxe Nginx v pořádku, restartujte službu Nginx:

sudo systemctl restart nginx

Vytvořit mezipaměť PageSpeed

Před konfigurací filtrů musíte vytvořit adresář mezipaměti pro rychlost stránky Nginx pro ukládání souborů v mezipaměti a konverzí obrázků. Toto lze změnit na místo podle vašeho výběru; uděláme to však ve složce Nginx pro průvodce.

Vytvořte adresář mezipaměti:

sudo mkdir -p /etc/nginx/ngx_pagespeed_cache

Nastavit uživatele www-data jako vlastníka (důležité):

sudo chown -R www-data:www-data /etc/nginx/ngx_pagespeed_cache

Nastavení souborů PageSpeed

Nyní existuje několik způsobů, jak nastavit filtry rychlosti stránky, a žádný není správný nebo špatný. Tento příklad však vytvoří pagespeed.conf“ konfigurační soubor pro tento tutoriál.

Důvodem je skutečnost, že konfigurace rychlosti stránky může být složitá a často může poškodit web. Pokud chcete moduly pagespeed rychle vrátit zpět, můžete přidat komentář proti zahrnutí pagespeed.conf řádek v bloku vašeho serveru.

Vytvořte soubor pagespeed.conf:

sudo nano /etc/nginx/modules-available/pagespeed.conf

Dále projdeme primární filtr nastavený jako bezpečný pro většinu webových stránek. To však lze v budoucnu změnit a upravit na velké množství různých možností, ale budete si to muset pečlivě prostudovat v dokumentaci.

###enable pagespeed on the server block###
 pagespeed on;
 pagespeed Domain https://www.example.com;
 pagespeed Domain https://example.com;

###Add this line if your website runs on HTTPS###
 pagespeed FetchHttps enable;

###Set up admin location###
 admin console
 pagespeed Statistics on;
 pagespeed StatisticsLogging on;
 pagespeed StatisticsLoggingIntervalMs 60000;
 pagespeed StatisticsLoggingMaxFileSizeKb 1024;
 pagespeed MessageBufferSize 100000;
 pagespeed LogDir /var/log/pagespeed;
 pagespeed AdminPath /pagespeed_admin;

###SECURE THE LOCATION FROM BAD BOTS AND MALICOUS ACTORS###
 location ~ ^/pagespeed_admin {
    allow 127.0.0.1;
    allow your-own-IP-address;
    deny all;
 }


###Specify the file cache folder that you created earlier###
 pagespeed FileCachePath /etc/nginx/ngx_pagespeed_cache;

###Set the cache settings, you can play around with these numbers###
 pagespeed FileCacheSizeKb            102400;
 pagespeed FileCacheCleanIntervalMs   3600000;
 pagespeed FileCacheInodeLimit        500000;
 pagespeed LRUCacheKbPerProcess     1024;
 pagespeed LRUCacheByteLimit        16384;

###OPTIONAL: use Memcached to further increase performance of pagespeed###
 pagespeed MemcachedThreads 1;
 pagespeed MemcachedServers "localhost:11211";

###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 ~ "^/pagespeed_static/" { }
 location ~ "^/ngx_pagespeed_beacon$" { }

###Set the most common safe filters###
 pagespeed RewriteLevel CoreFilters;

Nyní jste si možná všimli, že jsme v nově vytvořeném adresáři pagespeed přejmenovali instalační soubor pagespeed-example.com.conf .“ To bylo provedeno, jako byste hostovali více webových stránek na stejném serveru. Některé mohou vyžadovat jiné přizpůsobení rychlosti stránky, takže oddělením souborů nastavení zabráníte tomu, aby se vaše nastavení zamotalo.

Možnost filtru, která byla nastavena, byla „CoreFilters“ jako úroveň přepisování. Celkově nabízí PageSpeed ​​tři úrovně přepisování:„CoreFilters, PassThrough,a OptimizeForBandwidth“ . Jak jste si mohli všimnout v původních komentářích, „CoreFilters“ je bezpečný pro většinu webových stránek a používá se jako výchozí pro testování.

Corefilters se skládá z:

  • add_headPřidá prvek v dokumentu, pokud ještě není přítomen.
  • combine_cssKombinuje více prvků CSS do jednoho.
  • combine_javascriptKombinuje více prvků skriptu do jednoho.
  • convert_meta_tagsPřidá hlavičku odpovědi pro každou značku metadat s atributem http-equiv.
  • extend_cacheProdlužuje životnost mezipaměti zdrojů CSS, JS a obrázků, které jinak nebyly optimalizovány podepisováním adres URL pomocí hash obsahu.
  • fallback_rewrite_css_urlsPřepíše zdroje odkazované v libovolném souboru CSS, které nelze jinak analyzovat a minifikovat.
  • flatten_css_importsInline CSS sloučením všech pravidel @import.
  • inline_cssVloží malé soubory CSS do dokumentu HTML.
  • inline_import_to_linkŘádky