GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit mezipaměť Nginx na serveru LEMP

Nginx je bezplatný webový server s otevřeným zdrojovým kódem, nemluvě o jednom z nejpoužívanějších webových serverů na světě. Může být použit jako reverzní proxy, poštovní proxy, nástroj pro vyrovnávání zatížení a server pro ukládání do mezipaměti. Nginx je vysoce škálovatelný a speciálně navržený pro maximální výkon a stabilitu. Používá architekturu řízenou událostmi a zpracovává každý příchozí požadavek v jediném vláknu.

Nginx přichází s modulem FastCGI, který lze použít k ukládání dynamického obsahu obsluhovaného z backendu PHP. Po nastavení Nginx s mezipamětí FastCGI nemusíte nastavovat další řešení pro ukládání do mezipaměti, jako je Redis, Varnish, Memcache.

V tomto tutoriálu vám ukážeme, jak nastavit mezipaměť Nginx FastCGI s LEMP na Ubuntu 18.04.

Předpoklady

  • Nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.Net
  • Heslo uživatele root nakonfigurované na vašem serveru

Krok 1 – Vytvořte cloudový server Atlantic.Net

Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 18.04 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.

Jakmile se přihlásíte ke svému serveru Ubuntu 18.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.

apt-get update -y

Krok 2 – Instalace serveru LEMP

Začněme instalací LEMP (Nginx, PHP, PHP-FPM) na váš server.

apt-get install nginx php php-cli php-fpm -y

Výše uvedený příkaz také nainstaluje webový server Apache do vašeho systému, takže budete muset zastavit a deaktivovat službu Apache.

systemctl stop apache2
systemctl disable apache2

Dále spusťte službu Nginx a PHP-FPM pomocí následujícího příkazu:

systemctl start nginx
systemctl start php7.2-fpm

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Krok 3 – Vytvořte ukázkový web

Nejprve vytvořte adresář pro svůj web pomocí následujícího příkazu:

mkdir /var/www/html/example.com

Dále vytvořte ukázkový soubor info.php v adresáři vašeho webu:

nano /var/www/html/example.com/info.php

Přidejte následující řádky:

<?php phpinfo(); ?>

Uložte a zavřete soubor. Poté změňte vlastnictví svého webu na www-data user:

chown -R www-data:www-data /var/www/html/example.com
chmod -R 755 /var/www/html/example.com

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Krok 4 – Konfigurace Nginx s mezipamětí FastCGI

Dále budete muset vytvořit nový konfigurační soubor virtuálního hostitele Nginx, který bude sloužit vašemu webu a povolit mezipaměť FastCGI.

nano /etc/nginx/sites-available/example.com.conf

Přidejte následující řádky:

# Enable FastCGI Support
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=nginxcache:150m max_size=1g 
inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
add_header X-Cache $upstream_cache_status;

server {
listen 80;
root /var/www/html/example.com;
client_max_body_size 256M;
index info.php;
server_name example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location = /favicon.ico { access_log off; log_not_found off; }

#Disable caching for login session, user cookie, POST request, query string, site map and feeds
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}

# Enable caching for your website.
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index info.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_cache nginxcache;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;

}
}

Po dokončení uložte a zavřete soubor a poté pomocí následujícího příkazu zkontrolujte Nginx, zda neobsahuje chyby syntaxe:

nginx -t

Měli byste získat následující výstup:

Dále povolte soubor virtuálního hostitele Nginx pomocí následujícího příkazu:

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Nakonec znovu načtěte službu Nginx a použijte změny:

systemctl restart nginx

Stručné vysvětlení každé direktivy ve výše uvedeném konfiguračním souboru je uvedeno níže:

  • fastcgi_cache_path vytvoří mezipaměť FastCGI a určí umístění mezipaměti, název paměťové zóny (nginxcache) s velikostí (150M), max_size (1G) a definuje klíč pro vyhledávání mezipaměti.
  • add_header se používá k ověření, zda byl požadavek obsloužen z mezipaměti FastCGI či nikoli.
  • fastcgi určuje cestu k soketu php-fpm.
  • fastcgi_cache umožňuje ukládání do mezipaměti, které jsme specifikovali pomocí paměťové zóny v direktivě fastcgi_cache_path.
  • fastcgi_cache_valid nastaví čas mezipaměti se stavovým kódem 200, 301, 302 bude ukládán do mezipaměti po dobu 60 minut.
  • fastcgi_cache_lock umožňuje pouze první požadavek prostřednictvím upstream serveru PHP-FPM.

Krok 5 – Otestujte mezipaměť Nginx FastCGI

V tomto okamžiku je Nginx nainstalován a nakonfigurován s podporou FastCGI Cache. Je čas ověřit, zda ukládání do mezipaměti funguje nebo ne.

Otevřete webový prohlížeč, přejděte na webový server Nginx pomocí adresy URL http://example.com a stránku několikrát načtěte znovu.

Dále otevřete svůj terminál a spusťte následující příkaz k načtení záhlaví http odpovědi.

curl -I http://example.com

Měli byste získat následující výstup:

HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Fri, 24 Apr 2020 16:07:24 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Cache: HIT

Z výše uvedeného výstupu X-Cache:HIT označuje, že odpověď byla doručena z mezipaměti.

Závěr

Gratulujeme! Úspěšně jste nakonfigurovali Nginx s podporou mezipaměti FastCGI. Po povolení ukládání do mezipaměti byste si měli všimnout obrovského zlepšení výkonu, protože stránky se načítají, aniž by je muselo PHP vykreslovat. Vyzkoušejte FastCGI Cache na Nginx ještě dnes s hostingovou službou Atlantic.Net VPS.


Linux
  1. Jak přesměrovat HTTP na HTTPS v Nginx

  2. Jak nainstalovat LEMP na Ubuntu 16.04

  3. Jak nastavit NTP server v CentOS?

  1. Jak nastavit LEMP server na Debian 10 Buster

  2. Jak nastavit bloky serveru Nginx v Ubuntu 18.04 LTS

  3. Jak nainstalovat LEMP Stack na Ubuntu 20.04 Server/Desktop

  1. Jak nainstalovat LEMP Server na CentOS 8

  2. Jak nainstalovat Nginx na Ubuntu 14.04

  3. Jak nainstalovat Nginx v Debianu 7