Kontakt os

info@serverion.com

Ring til os

+1 (302) 380 3902

NGINX Config Rewind: Serverion genopliver the Lost Art of Proxy Cache Tuning

NGINX Config Rewind: Serverion genopliver the Lost Art of Proxy Cache Tuning

Vil du have hurtigere websteder og lavere serverbelastning? NGINX proxy caching er din løsning. Ved at gemme ofte efterspurgt indhold fremskynder det leveringen og reducerer belastningen på dine oprindelsesservere. Serverion deler praktiske tips til at optimere din cache-opsætning for bedre ydeevne og pålidelighed.

Nøgle takeaways:

  • Server gammelt indhold: Brug cachelagrede svar under servernedetid med proxy_cache_brug_forældet.
  • Baggrundsopdateringer: Opdater cacheposter uden at forstyrre brugere, der bruger proxy_cache_baggrundsopdatering.
  • Undgå overbelastning: Undgå at overvælde din oprindelsesserver med proxy_cache_lock.

Eksempel opsætning:

proxy_cache_path /var/cache/nginx niveauer=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; proxy_cache my_cache; proxy_cache_use_stale opdatering; proxy_cache_background_update til; proxy_cache_lock til; 

Disse indstillinger sikrer hurtige svar, effektiv ressourceanvendelse og pålidelig levering af indhold. Uanset om du kører en lille VPS eller en server med høj trafik, kan disse teknikker hjælpe dig med at få mest muligt ud af NGINX proxy-cache.

NGINX: Indholdscaching med omvendt proxy (superhurtig …

Nginx

Grundlæggende om NGINX Proxy Caching

Serverions cache-tuning-teknikker er afhængige af kerneprincipperne for NGINX proxy-caching, som involverer lagring og visning af kopier af oprindelsesindhold. Systemet bruger tre hovedkomponenter: cachestien, en delt hukommelseszone og en cachemanager, der fjerner udløbne eller mindst nyligt brugte (LRU) filer, når cachen når sin grænse.

NGINX Proxy Cache Operation

Når NGINX behandler en anmodning, tjekker den først sin delte hukommelseszone for at se, om det anmodede indhold allerede er cachelagret. Dette opslag i hukommelsen giver mulighed for hurtig bestemmelse af cache-hits eller -misser. Til reference kan en 1 MB nøglezone gemme cirka 8.000 cachenøgler[1].

Sådan fungerer cacheprocessen:

  • NGINX hashes anmodningen om at oprette en unik cache-nøgle.
  • Den kontrollerer den delte hukommelseszone for den pågældende nøgle.
  • Findes nøglen (cache-hit), serveres indholdet direkte fra cachen.
  • Hvis nøglen ikke findes (cache miss), hentes indholdet fra oprindelsesserveren og gemmes i cachen til fremtidig brug.

Serverion optimerer ydeevnen ved at sikre effektive nøgleopslag og organisere cachelageret ved hjælp af bibliotekshierarkier.

Core Cache Elements

direktiv Formål Indvirkning
proxy_cache_sti Angiver cachelagringsplaceringen Bestemmer, hvor og hvordan indhold cachelagres
proxy_cache Aktiverer caching for specifikke anmodninger Aktiverer caching inden for en lokationsblok
keys_zone Tildeler delt hukommelse til cache-nøgler Tillader hurtige opslag i hukommelsen
inaktiv Definerer, hvor længe ubrugte elementer forbliver i cachen Styrer cachens friskhed og timing for udsættelse

Brug en to-niveau for at maksimere ydeevnen niveauer hierarki for at forhindre langsommere filsystem. Derudover sæt use_temp_path=off at skrive cachelagrede filer direkte til deres endelige placering, hvilket reducerer I/O-overhead.

NGINX respekterer cache-direktiver fra oprindelsesserveren. Den gemmer kun svar, der indeholder en Udløber overskrift med en fremtidig dato eller en Cache-kontrol overskrift med en max-alder værdi større end nul.

Du kan nu anvende disse principper i din NGINX proxy-cache-opsætning.

[1] NGINX-dokumentation: En 1 MB nøglezone gemmer data for omkring 8.000 nøgler.

NGINX Proxy Cache Opsætningsvejledning

Lær, hvordan du konfigurerer og optimerer NGINX proxy-cache trin for trin.

Cache-parameterindstillinger

Grundlaget for NGINX proxy cache opsætning er proxy_cache_sti direktiv. Her er et eksempel på en konfiguration:

proxy_cache_path /var/cache/nginx niveauer=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; 

Denne konfiguration opretter en mappestruktur på to niveauer, tildeler 10 MB til keys_zone (nok til ca. 80.000 nøgler), indstiller en maksimal cachestørrelse på 10 GB og definerer en inaktiv timeout på 60 minutter.

Du kan også inkludere disse valgfrie direktiver for bedre kontrol:

direktiv Formål
proxy_cache_brug_forældet Leverer gammelt indhold, hvis oprindelsesservere ikke er tilgængelige
proxy_cache_revalidate Bruger betingede GET-anmodninger til at kontrollere, om indholdet stadig er gyldigt
proxy_cache_baggrundsopdatering Opdaterer gammelt indhold i baggrunden
proxy_cache_lock Forhindrer flere anmodninger i at overvælde oprindelsesserveren

Efter at have defineret disse parametre, alloker hukommelse og diskplads baseret på din forventede trafik.

Administration af cachestørrelse

For effektivt at dimensionere din cache, skal du overveje både hukommelse og diskbrug. Sådan gør du:

  • Størrelse af hukommelseszone Tildel hukommelse til keys_zone for at matche dine cachebehov:
    keys_zone=enterprise_cache:100m; # Understøtter cirka 800.000 cache-nøgler 
  • Diskpladstildeling Juster proxy_cache_sti for at angive den maksimale diskplads:
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=enterprise_cache:100m max_size=10g inactive=24h use_temp_path=off; 

Når disse parametre er indstillet, er du klar til at initialisere og aktivere din cache.

Cache-initialisering

Når du har finjusteret dine parametre og størrelse, skal du følge disse trin for at aktivere caching:

  1. Brug proxy_cache_sti direktiv fra eksemplet ovenfor og tilføj proxy_cache min_cache til din konfiguration.
  2. Aktiver caching inden for den relevante server eller Beliggenhed blok:
    proxy_cache min_cache; 
  3. Medtag eventuelt et af de tidligere nævnte finjusteringsdirektiver for at forbedre ydeevnen.
  4. Overvåg cachestatus ved at tilføje en brugerdefineret overskrift:
    add_header X-Cache-Status $upstream_cache_status; 

Note: Ifølge NGINX dokumentation, en 1 MB keys_zone kan opbevare cirka 8.000 nøgler.

Denne opsætning sikrer, at din cache er klar til at håndtere trafik effektivt og samtidig bevare fleksibiliteten til justeringer.

Enterprise NGINX Cache Management

Når din cachesti og dine parametre er indstillet, er det tid til at skalere din opsætning for at håndtere trafik på virksomhedsniveau effektivt.

Cache Hit Rate Optimering

For at forbedre cacheeffektiviteten skal du aktivere funktioner som betingede anmodninger og baggrundsopdateringer:

proxy_cache_revalidate til; proxy_cache_background_update til; proxy_cache_use_stale opdatering; 

Undgå at overvælde din oprindelsesserver ved at konfigurere disse indstillinger:

proxy_cache_lock til; proxy_cache_lock_timeout 5s; proxy_cache_min_uses 2; 

For miljøer med høj trafik skal du fordele cachebelastningen på flere lagerenheder for at forbedre ydeevnen:

split_clients "${request_uri}" $disk { 20% "/data/cache1"; 20% "/data/cache2"; 20% "/data/cache3"; 20% "/data/cache4"; * "/data/cache5"; } 

Når din cache er optimeret til ydeevne, skal du fokusere på at sikre den til at håndtere følsomt indhold.

Cache sikkerhedskontrol

For at beskytte følsomme anmodninger skal du omgå caching og tilpasse cache-nøgler efter behov:

proxy_cache_bypass $http_pragma; proxy_cache_bypass $cookie_nocache; proxy_ignore_headers Cache-kontrol; 

For personligt indhold eller cookie-baserede anmodninger skal du justere cache-nøglen og understøttede metoder:

proxy_cache_key "$host$request_uri$cookie_user"; proxy_cache_methods HENT HEAD POST; 

Når du har sikret din cache, skal du sikre dig, at du løbende overvåger dens ydeevne.

Sporing af cache-ydelse

Overvåg cache-adfærd ved hjælp af statusdefinitioner for at finjustere din opsætning:

Status Definition
OPDATERING Forældet indhold vises, mens en opdatering er i gang
REVALIDERET Cachelagt indhold blev genvalideret med oprindelsesserveren

Analyser X-Cache-status målinger regelmæssigt og justere direktiver for at tilpasse sig trafikmønstre for optimale resultater.

Serverion's NGINX Cache-konfiguration

Serverion

Serverion tilpasser NGINX cache-indstillinger baseret på de specifikke behov for hver arbejdsbelastning. Ved at bruge kernedirektiver optimerer de cache-konfigurationer forskelligt for VPS og dedikerede servere.

Cachestier efter arbejdsbelastning

VPS arbejdsbelastninger

For VPS-opsætninger skaber denne konfiguration en balance mellem hukommelseseffektivitet og hurtige svartider:

proxy_cache_path /data/nginx/cache niveauer=1:2 keys_zone=SERVERCACHE:10m max_size=10g inactive=60m use_temp_path=off; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_cache_valid 200 302 60m; proxy_cache_valid 404 1m; 

De keys_zone størrelsen er indstillet til at rumme cirka 80.000 nøgler.

Dedikerede servere

Til applikationer med høj trafik på dedikerede servere bruger Serverion et distribueret cachesystem på tværs af flere SSD'er:

proxy_cache_path /cache1 niveauer=1:2 keys_zone=cache1:10m; proxy_cache_path /cache2 niveauer=1:2 keys_zone=cache2:10m; proxy_cache_path /cache3 niveauer=1:2 keys_zone=cache3:10m; split_clients "${request_uri}" $cachezone { 33% "cache1"; 33% "cache2"; * "cache3"; }  Bemærk: Denne kode er i hovedtræk konfigurationskommandoer for netværksudstyr. Funktionelle ord som "${request_uri}" og "cache2" kan oversættes direkte fra engelsk. Funktionelle ord som "${request_uri}" og "cache2" kan oversættes direkte fra engelsk. 

Denne opsætning fordeler cache-skrivninger jævnt på tværs af tre SSD'er ved hjælp af split_klienter direktiv.

Specifikke værdier for disse konfigurationer er afledt fra Serverions Cache Parameter Reference Tabel.

Infrastrukturindstillinger

For yderligere at forbedre ydeevnen justeres NGINX-arbejderindstillingerne til effektivt at håndtere cache-input og -output:

worker_processes auto; worker_connections 1024; worker_cpu_affinity 0-3; # justerer arbejdere med CPU-kerner 

Disse justeringer sikrer, at cachelagrede svar leveres med maksimal effektivitet.

Resumé: NGINX Cache Tuning Resultater

Serverion forbedrede ydeevne og pålidelighed på tværs af sine hosting systemer gennem detaljerede proxy-cache-justeringer. Ved at forfine cachehierarki, administrere indstillinger for friskhed og optimere headerbehandling, opretholdt de problemfri indholdslevering. Realtid X-Proxy-Cache målinger gjorde det muligt for it-teams at justere cache-indstillinger effektivt, hvilket førte til hurtigere svartider, mindre belastning af oprindelsesservere og bedre tilgængelighed for virksomhedsdrift.

Relaterede blogindlæg

da_DK