Hoe Nginx FastCGI Cache op Ubuntu in te stellen

Nginx FastCGI Cache verbetert de prestaties van uw website door de belasting van uw Ubuntu-server te verminderen. Het is vooral effectief voor dynamische inhoud, waardoor Nginx inhoud in de cache rechtstreeks kan aanbieden zonder gebruik te maken van PHP-processors. Dit versnelt de responstijd en verlaagt het resourcegebruik. Hier zijn de belangrijkste kenmerken en voordelen van Nginx FastCGI Cache voor uw webinfrastructuur:

  • Efficiënte levering van inhoud: Nginx FastCGI Cache slaat dynamische inhouduitvoer op, waardoor snellere toegang en distributie mogelijk is.
  • Verminderde serverbelasting: Door inhoud in de cache aan te bieden, wordt het aantal PHP-aanroepen geminimaliseerd, waardoor de belasting van de server wordt verlicht.
  • Schaalbaarheid: Nginx FastCGI Cache helpt bij het beheren van meer verkeer zonder dat dit ten koste gaat van de snelheid naarmate uw website groeit.
  • Aanpasbare caching: Deze optie biedt flexibiliteit bij het instellen van de cacheverval-, bypass- en updatevoorwaarden om aan uw behoeften te voldoen.
  • Verbeterde gebruikerservaring: Snellere laadtijden van websites verbeteren de gebruikerservaring, wat een positieve invloed heeft op het bezoekersbehoud en de SEO-ranglijst.
  • Optimalisatie van hulpbronnen: Optimaliseert het gebruik van serverbronnen, wat leidt tot een efficiëntere afhandeling van gelijktijdige verzoeken.
  • Eenvoudig foutopsporing: Biedt eenvoudige mechanismen voor het debuggen en valideren van inhoud in de cache, waardoor een soepele werking wordt gegarandeerd.
  • Compatibiliteit: Werkt naadloos samen met populaire CMS-platforms en verbetert hun prestaties zonder uitgebreide configuratie.

Houd er bij het ingaan van de technische how-to rekening mee dat het implementeren van Nginx FastCGI Cache een strategische manier is om de efficiëntie en gebruikerstevredenheid van uw site te verbeteren. Laten we beginnen met het verbeteren van de prestaties van uw website met Nginx FastCGI Cache.

Nginx FastCGI-cache instellen

Bewerk het Nginx-configuratiebestand voor FastCGI Cache

Open het configuratiebestand

Eerst moet u de nginx.conf bestand. We zullen de nano-teksteditor gebruiken, maar u kunt elke teksteditor gebruiken waarmee u vertrouwd bent. Voer deze opdracht in:

sudo nano /etc/nginx/nginx.conf

Configureer FastCGI-parameters

Zoek in het bestand het HTTP-blok en voeg de volgende regels toe:

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";

Druk na het invoeren van de regels op CTRL + O, typ Yen druk vervolgens op CTRL + X verlaten.

Begrijp de FastCGI-parameters

  • fastcgi_cache_path: deze parameter stelt de locatie in voor het opslaan van de FastCGI-cache (/var/nginx/fastcgi_cache). Het is essentieel omdat het bepaalt waar de in de cache opgeslagen inhoud zich zal bevinden.
  • levels=1:2: Hiermee wordt een maphiërarchie met twee niveaus gemaakt onder uw cachelocatie. Dit ontwerp helpt bij het verspreiden van bestanden over twee mappen, wat op zijn beurt het risico op schijf-I/O-knelpunten verkleint.
  • keys_zone: het specificeert de naam van de gedeelde geheugenzone (fcgicache) en de grootte ervan (150M). De gedeelde geheugenzone is cruciaal voor het opslaan van cachesleutels en metagegevens.
  • max_size: Dit definieert de maximale grootte van de cache (in dit voorbeeld 20GB). Wanneer deze limiet wordt bereikt, worden de oudste bestanden verwijderd om ruimte te maken voor nieuwe.
  • inactive: dit specificeert de duur waarna niet-gebruikte gegevens uit de cache worden verwijderd. In dit voorbeeld is deze ingesteld op 60 minuten.
  • use_temp_path: dit instellen op off instrueert Nginx om bestanden rechtstreeks naar de opgegeven cachemap te schrijven, waarbij het gebruik van een tijdelijk opslaggebied wordt omzeild.
  • fastcgi_cache_key: Het wordt gebruikt om de sleutel voor het opzoeken in de cache te definiëren. Nginx maakt een MD5-hash van deze sleutel om te gebruiken als de naam van cachebestanden.

Configureer het Nginx-serverblok voor FastCGI-cache

Bewerk het serverblokbestand

Vervolgens moet u uw serverblokbestand bewerken. Voor dit voorbeeld gaan we ervan uit dat het bestand de naam heeft example.com.conf. Open het met het volgende commando:

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

Voeg FastCGI-cacherichtlijnen in

Ervan uitgaande dat LEMP is geïnstalleerd, voegt u de volgende regels in het locatieblok voor PHP-bestanden in:

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;

Begrijp de FastCGI-cacherichtlijnen

  • fastcgi_cache: Schakelt caching in en specificeert de gedeelde geheugenzone die eerder is gedefinieerd.
  • fastcgi_cache_valid: definieert de cacheduur voor specifieke HTTP-statuscodes.
  • fastcgi_cache_use_stale: Stelt voorwaarden in waaronder Nginx een verouderd in de cache opgeslagen antwoord kan gebruiken.
  • fastcgi_cache_min_uses: Hiermee geeft u op hoe vaak een antwoord moet worden aangevraagd voordat het in de cache wordt opgeslagen.
  • fastcgi_cache_lock: Zorgt ervoor dat slechts één verzoek tegelijk een nieuw cache-element vult, waardoor een 'cache-stormloop' wordt voorkomen.
  • add_header: Voegt een aangepaste koptekst toe (X-FastCGI-Cache) naar het HTTP-antwoord, waarmee wordt aangegeven of het antwoord vanuit de cache is verzonden.

Configureer FastCGI Cache Purge op Nginx

Cacheopschoning instellen

Met het opschonen van de cache kunt u inhoud uit de cache verwijderen voordat deze verloopt. Om het opschonen van de cache te configureren, maakt u een instructie voor het opschonen van de cache door de volgende regels in uw serverblokbestand in te voegen:

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";
}

druk op CTRL + O, typ Yen druk vervolgens op CTRL + X om de teksteditor te verlaten.

Alternatieve aanpak voor problemen met het opschonen van caches

Als u problemen ondervindt bij het opschonen van de cache, kunt u in plaats daarvan de vervaltijd van de cache aanpassen. Voor websites met gemiddeld tot hoog verkeer is het instellen van een lagere vervaldatum, zoals 2 uur inactief en 4 uur voor de algehele vervaldatum, vaak efficiënter.

Test en start de Nginx-server opnieuw

Test de configuratie

Het is essentieel om de Nginx-configuratie te valideren om syntaxisfouten of verkeerde configuraties te voorkomen. Gebruik de volgende opdracht:

sudo nginx -t

Als alles correct is, zou u de volgende uitvoer moeten zien:

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

Start de Nginx-server opnieuw

Start ten slotte de Nginx-server opnieuw op om de aangebrachte wijzigingen toe te passen:

sudo systemctl restart nginx

Creëer en optimaliseer de Nginx FastCGI-cachemap

Maak een FastCGI-cachemap

Laten we nu de map maken waar Nginx de cachebestanden zal opslaan. Dit pad is eerder gespecificeerd in de nginx.conf bestand:

sudo mkdir -p /var/nginx/fastcgi_cache

Optimaliseer de cachemap met tmpfs (optioneel)

Als uw systeem voldoende RAM-geheugen heeft, kunt u ervoor kiezen om dit te gebruiken tmpfs om de cache in het geheugen op te slaan. Dit kan resulteren in snellere toegangstijden vergeleken met schijfopslag. Wees echter voorzichtig, aangezien opslag in RAM aanzienlijke geheugenbronnen kan verbruiken. Hier ziet u hoe u de cachemap kunt koppelen als tmpfs:

Bewerking /etc/fstab bestand:

sudo nano /etc/fstab

Voeg de volgende regel toe aan het einde van het bestand:

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

Hiermee wordt 512 MB RAM toegewezen voor de cache. U kunt de grootte dienovereenkomstig aanpassen op basis van uw systeembronnen.

Monteer de tmpfs:

sudo mount -a

Deze configuratie zorgt ervoor dat de FastCGI-cache in het geheugen wordt opgeslagen, waardoor snellere prestaties worden geboden ten koste van het RAM-gebruik.

Valideer de Nginx FastCGI-cachefunctionaliteit

Test FastCGI-cache met krul

U kunt valideren dat FastCGI Cache correct werkt door gebruik te maken van de curl commando. Afhankelijk van uw cache-instellingen moet u de opdracht mogelijk meerdere keren uitvoeren voordat u een cachetreffer ziet:

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

Als je dat niet hebt curl geïnstalleerd, kunt u het installeren met:

sudo apt install curl -y

Zoek in de uitvoer naar de X-FastCGI-Cache: HIT koptekst:

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

Dit geeft aan dat het verzoek vanuit de cache is verzonden.

Configureer cache-uitsluitingen

Website-elementen zoals WordPress-beheerpagina's, commentaarsecties en sitemaps mogen niet in de cache worden opgeslagen. Om Nginx te configureren om deze niet in de cache op te slaan, voegt u de volgende code toe boven de location (~\.php$) regel in uw serverblokbestand:

# 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;
}

Fouten opsporen in cache-uitsluitingen (optioneel)

Als u notities wilt toevoegen voor foutopsporingsdoeleinden, kunt u onder elke notitie een aangepaste notitie opnemen set $skip_cache 1; verklaring als deze:

set $skip_reason "your custom note";

Dit kan handig zijn om te begrijpen waarom bepaalde inhoud niet in de cache wordt opgeslagen tijdens het oplossen van problemen.

Nadat u deze configuraties hebt gemaakt, moet u de configuratie testen en Nginx opnieuw opstarten:

sudo nginx -t
sudo systemctl restart nginx

Best practices en overwegingen met Nginx FastCGI Cache

Hoewel FastCGI-caching aanzienlijke prestatievoordelen kan bieden, is het essentieel om ervoor te zorgen dat de configuratie is geoptimaliseerd voor uw specifieke gebruiksscenario en serverbronnen:

  • Evalueer de hoeveelheid beschikbare RAM voordat u kiest tmpfs voor caching. Zorg ervoor dat uw server voldoende geheugen heeft voor andere kritieke processen.
  • Pas de cache-uitsluitingen aan uw toepassing aan. De gegeven voorbeelden zijn specifiek voor WordPress, maar voor andere soorten toepassingen heeft u mogelijk andere uitsluitingen nodig.
  • Controleer regelmatig het cachegebruik en de prestaties. Als de cache te veel schijfruimte in beslag neemt of de prestaties niet verbetert zoals verwacht, kunt u overwegen het cachepad, de grootte of de instellingen dienovereenkomstig aan te passen.

Conclusie

Nou, daar heb je het! We hebben de stappen doorlopen om Nginx FastCGI Cache op uw Ubuntu-server te installeren, wat een boost geeft aan de prestaties van uw website door efficiënt om te gaan met dynamische inhoud. Houd er rekening mee dat het belangrijk is om uw cache-instellingen aan te passen aan de behoeften van uw site om de voordelen te maximaliseren. Schroom niet om de instellingen aan te passen om de goede plek te vinden. Of u nu een doorgewinterde professional bent of nieuw bent op het gebied van serverbeheer, we hopen dat deze handleiding een handige aanvulling is geweest bij het optimaliseren van uw aanwezigheid op het internet. Houd het simpel, blijf consistent, en op weg naar een snellere, soepelere website-ervaring voor u en uw bezoekers!

Joshua James
Volg mij
Laatste berichten van Joshua James (alles zien)

Plaats een reactie