Hur man ställer in Nginx FastCGI Cache på Ubuntu

Nginx FastCGI Cache ökar din webbplats prestanda genom att minska belastningen på din Ubuntu-server. Det är särskilt effektivt för dynamiskt innehåll, vilket gör att Nginx kan servera cachelagrat innehåll direkt utan att använda PHP-processorer. Detta snabbar upp svarstiden och minskar resursanvändningen. Här är nyckelfunktionerna och fördelarna med Nginx FastCGI Cache för din webbinfrastruktur:

  • Effektiv innehållsleverans: Nginx FastCGI Cache lagrar dynamiskt innehåll, vilket möjliggör snabbare åtkomst och distribution.
  • Minskad serverbelastning: Att visa cachelagrat innehåll minimerar antalet PHP-anrop, vilket gör serverns belastning lättare.
  • Skalbarhet: Nginx FastCGI Cache hjälper till att hantera ökad trafik utan att kompromissa med hastigheten när din webbplats växer.
  • Anpassningsbar cachelagring: Det här alternativet erbjuder flexibilitet när det gäller att ställa in cache-utgång, förbikoppling och uppdateringsvillkor för att passa dina behov.
  • Förbättrad användarupplevelse: Snabbare laddningstider för webbplatser förbättrar användarupplevelsen, vilket påverkar besöksbehållandet och SEO-rankingen positivt.
  • Resursoptimering: Optimerar utnyttjandet av serverresurser, vilket leder till effektivare hantering av samtidiga förfrågningar.
  • Enkel felsökning: Ger enkla mekanismer för att felsöka och validera cachelagrat innehåll, vilket säkerställer smidig drift.
  • Kompatibilitet: Fungerar sömlöst med populära CMS-plattformar, vilket förbättrar deras prestanda utan omfattande konfiguration.

När vi går in på det tekniska sättet, kom ihåg att implementering av Nginx FastCGI Cache är ett strategiskt sätt att förbättra din webbplats effektivitet och användarnöjdhet. Låt oss börja förbättra din webbplats prestanda med Nginx FastCGI Cache.

Ställ in Nginx FastCGI-cache

Redigera Nginx-konfigurationsfilen för FastCGI-cache

Öppna konfigurationsfilen

Först måste du öppna nginx.conf fil. Vi kommer att använda nanotextredigeraren, men du kan använda vilken textredigerare du är bekväm med. Ange detta kommando:

sudo nano /etc/nginx/nginx.conf

Konfigurera FastCGI-parametrar

Inuti filen, lokalisera HTTP-blocket och lägg till följande rader:

fastcgi_cache_path /var/nginx/fastcgi_cache levels=1:2 keys_zone=fcgicache:150m max_size=20g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

När du har angett raderna trycker du på CTRL + O, typ Yoch tryck sedan på CTRL + X att lämna.

Förstå FastCGI-parametrarna

  • fastcgi_cache_path: Denna parameter ställer in platsen för lagring av FastCGI-cachen (/var/nginx/fastcgi_cache). Det är viktigt eftersom det dikterar var det cachade innehållet kommer att finnas.
  • levels=1:2: Detta skapar en kataloghierarki på två nivåer under din cacheplats. Denna design hjälper till att sprida ut filer över två kataloger, vilket i sin tur minskar risken för disk I/O-flaskhalsar.
  • keys_zone: Den anger namnet på den delade minneszonen (fcgicache) och dess storlek (150M). Den delade minneszonen är avgörande för att lagra cache-nycklar och metadata.
  • max_size: Detta definierar den maximala storleken på cachen (i det här exemplet, 20GB). När denna gräns nås kommer de äldsta filerna att tas bort för att göra plats för nya.
  • inactive: Detta anger hur lång tid efter vilken data som inte har nåtts kommer att tas bort från cachen. I det här exemplet är den inställd på 60 minuter.
  • use_temp_path: Ställer in detta till off instruerar Nginx att skriva filer direkt till den angivna cachemappen, utan att använda ett temporärt lagringsområde.
  • fastcgi_cache_key: Den används för att definiera nyckeln för cachesökning. Nginx skapar en MD5-hash av denna nyckel för att använda som namn på cachefiler.

Konfigurera Nginx-serverblocket för FastCGI-cache

Redigera serverblockfil

Därefter måste du redigera din serverblockfil. I det här exemplet antar vi att filen har ett namn example.com.conf. Öppna den med följande kommando:

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

Infoga FastCGI Cache-direktiv

Förutsatt att du har LEMP installerat, infoga följande rader i platsblocket för PHP-filer:

fastcgi_cache fcgicache;
fastcgi_cache_valid 200 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
add_header X-FastCGI-Cache $upstream_cache_status;

Förstå FastCGI Cache-direktiven

  • fastcgi_cache: Aktiverar cachning och anger den delade minneszon som definierades tidigare.
  • fastcgi_cache_valid: Definierar cachens varaktighet för specifika HTTP-statuskoder.
  • fastcgi_cache_use_stale: Anger villkor under vilka Nginx kan använda ett gammalt cachat svar.
  • fastcgi_cache_min_uses: Anger hur ofta ett svar måste begäras innan det cachelagras.
  • fastcgi_cache_lock: Säkerställer att endast en begäran åt gången fyller i ett nytt cacheelement, vilket förhindrar en "cache-stämpling".
  • add_header: Lägger till en anpassad rubrik (X-FastCGI-Cache) till HTTP-svaret, vilket anger om svaret serverades från cachen.

Konfigurera FastCGI Cache Purge på Nginx

Ställa in Cache Purge

Cacherensning låter dig ta bort innehåll från cacheminnet innan det löper ut. För att konfigurera cacherensning, skapa ett cacherensningsdirektiv genom att infoga följande rader i din serverblockfil:

location ~ /purge(/.*) {
    # Uncomment the following two lines to allow purge only from the webserver
    allow 127.0.0.1;
    deny all;
    fastcgi_cache_purge fcgicache "$scheme$request_method$host$1";
}

Tryck CTRL + O, typ Yoch tryck sedan på CTRL + X för att avsluta textredigeraren.

Alternativt tillvägagångssätt för Cache-rensningsproblem

Om du stöter på problem med cacherensning kan du justera cacheminnets utgångstid istället. För webbplatser med medelhög till hög trafik är det ofta mer effektivt att ställa in en lägre utgångsfrekvens, till exempel 2 timmar inaktiv och 4 timmar för total utgång.

Testa och starta om Nginx-servern

Testa konfigurationen

Det är viktigt att validera Nginx-konfigurationen för att undvika syntaxfel eller felkonfigurationer. Använd följande kommando:

sudo nginx -t

Du bör se följande utdata om allt är korrekt:

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

Starta om Nginx Server

Slutligen, starta om Nginx-servern för att tillämpa ändringarna du har gjort:

sudo systemctl restart nginx

Skapa och optimera Nginx FastCGI Cache Directory

Skapa FastCGI Cache Directory

Låt oss nu skapa katalogen där Nginx kommer att lagra cachefilerna. Denna väg specificerades tidigare i nginx.conf fil:

sudo mkdir -p /var/nginx/fastcgi_cache

Optimera cachekatalogen med tmpfs (valfritt)

Om ditt system har tillräckligt med RAM, kan du välja att använda tmpfs för att lagra cachen i minnet. Detta kan resultera i snabbare åtkomsttider jämfört med disklagring. Var dock försiktig, eftersom lagring i RAM kan förbruka betydande minnesresurser. Så här kan du montera cachekatalogen som tmpfs:

Redigera /etc/fstab fil:

sudo nano /etc/fstab

Lägg till följande rad i slutet av filen:

tmpfs   /var/nginx/fastcgi_cache   tmpfs   defaults,size=512M   0 0

Detta tilldelar 512 MB av ditt RAM-minne för cachen. Du kan justera storleken utifrån dina systemresurser.

Montera tmpfs:

sudo mount -a

Denna konfiguration säkerställer att FastCGI-cachen lagras i minnet, vilket ger snabbare prestanda på bekostnad av RAM-användning.

Validera Nginx FastCGI Cache-funktionalitet

Testa FastCGI Cache med curl

Du kan verifiera att FastCGI Cache fungerar korrekt genom att använda curl kommando. Beroende på dina cacheinställningar kan du behöva köra kommandot flera gånger innan du ser en cacheträff:

curl -I http://www.your-domain.com

Om du inte har curl installerat kan du installera det med:

sudo apt install curl -y

Leta efter i utgången X-FastCGI-Cache: HIT rubrik:

~$ curl -I https://www.example.com/
HTTP/1.1 200 OK
...
X-FastCGI-Cache: HIT
...

Detta indikerar att begäran serverades från cachen.

Konfigurera cache-uteslutningar

Webbplatselement som WordPress-administratörssidor, kommentarsektioner och webbplatskartor bör inte cachelagras. För att konfigurera Nginx att inte cachelagra dessa, lägg till följande kod ovanför location (~\.php$) rad i din serverblockfil:

# Cache by default
set $skip_cache 0;

# Don't cache URIs containing the following
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-..php|^/feed/|/tag/./feed/|index.php|/.sitemap..(xml|xsl)") {
    set $skip_cache 1;
}

# Don't cache for logged-in users or comment authors
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $skip_cache 1;
}

# POST requests and URIs with a query string should bypass the cache
if ($request_method = POST) {
    set $skip_cache 1;
}

if ($query_string != "") {
    set $skip_cache 1;
}

Felsökning av cache-uteslutningar (valfritt)

Om du vill lägga till anteckningar för felsökningsändamål kan du inkludera en anpassad anteckning under varje set $skip_cache 1; uttalande så här:

set $skip_reason "your custom note";

Detta kan vara användbart för att förstå varför visst innehåll inte cachelagras under felsökning.

Efter att ha gjort dessa konfigurationer, se till att testa konfigurationen och starta om Nginx:

sudo nginx -t
sudo systemctl restart nginx

Bästa praxis och överväganden med Nginx FastCGI Cache

FastCGI-cachelagring kan erbjuda betydande prestandafördelar, men det är viktigt att säkerställa att konfigurationen är optimerad för ditt specifika användningsfall och serverresurser:

  • Utvärdera mängden tillgängligt RAM innan du väljer tmpfs för cachelagring. Se till att din server har tillräckligt med minne för andra kritiska processer.
  • Skräddarsy cache-uteslutningarna så att de passar din applikation. Exemplen som ges är specifikt för WordPress, men du kan behöva andra undantag för andra typer av applikationer.
  • Övervaka cacheanvändningen och prestanda regelbundet. Om cachen förbrukar för mycket diskutrymme eller inte förbättrar prestandan som förväntat, överväg att justera cachesökvägen, storleken eller inställningarna därefter.

Slutsats

Nåväl, där har du det! Vi har gått igenom stegen för att installera Nginx FastCGI Cache på din Ubuntu-server, vilket ger en boost i din webbplats prestanda genom att effektivt hantera dynamiskt innehåll. Kom ihåg att det är nyckeln till att upprätthålla dina cacheinställningar så att de passar din webbplats behov för att maximera fördelarna. Dra inte undan för att justera inställningarna för att hitta den där söta platsen. Oavsett om du är ett erfaret proffs eller nybörjare inom serverhantering, hoppas vi att den här guiden har varit en praktisk följeslagare för att optimera din webbnärvaro. Håll det enkelt, håll dig konsekvent och här är en snabbare, smidigare webbplatsupplevelse för dig och dina besökare!

Joshua James
Följ mig
Senaste inläggen av Joshua James (se alla)

Lämna en kommentar