NGINX er en populær, gratis og open source webserver. Standard NGINX-konfigurationerne er gode nok til at få webserveren til at fungere.
Men hvis du vil bruge NGINX fuldt ud, skal du lege med dets konfigurationsfiler og indstille de parametre, der vil optimere serverens ydeevne. Du finder konfigurationsfilerne i /etc/nginx mappe på en Linux-maskine.
Hvad er NGINX?
NGINX er en moderne webserver, som du kan bruge som mediestreamer, mailserver, omvendt proxy, load balancer, cacheserver og mere.
Brugt af mange store profiler såsom VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter osv., er NGINX kendt for sin førsteklasses ydeevne. En anden fordel ved at bruge NGINX er, at det er nemt at konfigurere og lære.
Forudsætninger for at tune NGINX-ydelse på Linux
Du skal opfylde følgende krav, før du starter med NGINX-konfigurationer:
- En NGINX-server installeret og konfigureret på Linux
- En grundlæggende forståelse af NGINX og dets konfigurationsfiler
Hvis du opfylder disse krav, er du klar til at tune NGINX for optimal ydeevne. Lad os se, hvordan du gør det.
1. Konfigurer arbejdsprocesser i NGINX
NGINX-arkitekturen består af én masterproces og flere arbejdsprocesser. Masterprocessens opgave er at vurdere konfigurationen og administrere medarbejdere. På den anden side er en arbejdsprocess rolle at håndtere indgående anmodninger og skabe en forbindelse mellem klienten og serveren.
Procesværdien er sat til auto som standard. Dette indstiller antallet af arbejdsprocesser til antallet af tilgængelige CPU-kerner. For at vide, hvor mange CPU-kerner der er til stede i dit system, skal du køre følgende kommando:
grep processor /proc/cpuinfo | wc -l
Hvis du vil øge antallet af arbejdsprocesser, skal du konfigurere dette i NGINX-konfigurationsfilen.
Åbn filen med nano:
nano etc/nginx/nginx.conf
For at konfigurere flere arbejdsprocesser skal du ændre standardværdien til det maksimale antal tilgængelige CPU-kerner i dit system.
2. Konfigurer arbejderforbindelser
En anden parameter, som du kan ændre for at forbedre NGINX's ydeevne, er arbejderforbindelser. Dette er det maksimale antal TCP-forbindelser, som hver arbejdsproces kan håndtere samtidigt.
De fleste systemer har en standardværdi på 512 forbindelser, men mange moderne systemer understøtter også et større antal. Du kan kontrollere, hvor mange forbindelser dit system understøtter med:
ubegrænset -n
Udgangen vil være det maksimale antal understøttede forbindelser. Du kan derefter ændre arbejderforbindelser variabel i NGINX-konfigurationsfilen for at forbedre ydeevnen.
3. Tillad GZIP-komprimering i NGINX
NGINX bruger GZIP til filkomprimering og dekomprimering. Hvis det er aktiveret i NGINX-konfigurationsfilen, kan du spare båndbredde og forbedre webstedets indlæsningstid, når forbindelsen er langsom.
For at tillade GZIP-komprimering skal du tilføje følgende linjer i NGINX-konfigurationsfilen:
server {
gzip på;
gzip_vari på;
gzip_min_længde 10240;
gzip_proxied udløb nej-cacheingen-butikprivat auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
}
4. Begræns timeoutværdi i NGINX
Reducerede timeout-værdier spiller også en vigtig rolle i at forbedre NGINX-ydeevnen. Det holde i live forbindelser reducerer processor- og netværksomkostningerne ved åbning og lukning af forbindelser.
Du kan ændre følgende parametre i konfigurationsfilen for at begrænse timeouts:
http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}
5. Juster bufferstørrelse
Du kan også justere NGINX-buffere for at optimere serverydelsen. Hvis bufferstørrelsen er for lav, vil NGINX skrive til en midlertidig fil, der får enorme I/O-operationer til at køre konstant.
Du skal indstille følgende bufferparametre for at NGINX fungerer bedst muligt:
http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}
6. Deaktiver adgangslogfiler eller Aktiver buffering af adgangslogfiler
Logfiler bruger en stor mængde diskplads og CPU/IO-cyklusser, der kan påvirke serverens ydeevne, hvis den logger hver anmodning.
Du kan deaktivere adgangslogfiler, hvilket vil spare diskplads og CPU-behandling. For at deaktivere adgangslogfiler skal du tilføje følgende linje til NGINX-konfigurationsfilen:
access_log off;
Logfiler er vigtige, da de hjælper med at fejlfinde et problem. Det er ikke en god praksis at fuldstændig deaktivere logfiler. I dette tilfælde kan du aktivere buffering af adgangslogfiler. Dette vil tillade NGINX at buffere en række logfiler og skrive dem til logfilen sammen på én gang i stedet for at anvende forskellige loghandlinger på hver anmodning.
Tilføj følgende linje i NGINX-konfigurationsfilen for at tillade buffering af adgangslogfiler:
adgangslog/var/log/nginx/access.logvigtigstebuffer = 16k
7. Juster statisk indholdscachingperiode i NGINX
Indholdet på webstedet, der forbliver det samme på tværs af sider, er kendt som statisk indhold. Caching af dette indhold gør det muligt at placere det på steder, der er let tilgængelige. Denne mekanisme reducerer brugen af båndbredde, tillader hurtig tilgængelighed og forbedrer efterfølgende webstedets ydeevne.
Når en klient anmoder om statisk indhold, vil serveren vise en cachelagret version af indholdet. Tilføj følgende linjer i den virtuelle værtsfil, der er placeret i /etc/nginx/sites-available vejviser:
placering ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
udløber 90d;
}
Denne konfiguration vil cache filerne i 90 dage siden sidste browseradgangstidspunkt.
8. Aktiver Open File Cache i NGINX
Du kan også bruge åbne fil-cache-parametre i NGINX-konfigurationsfilen for at forbedre dens ydeevne. Dette direktiv gør det muligt at cache filbeskrivelsen og ofte besøgte filer til serveren.
Tilføj følgende linjer i http afsnittet i konfigurationsfilen for at aktivere åben filcache:
http {
open_file_cache max=1024 inaktiv=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}
Få det bedste ud af NGINX ved at ændre dens konfigurationsfiler
En god praksis at følge, mens du ændrer konfigurationer, er at håndtere én indstilling ad gangen og teste den. Hvis det virker, skal du gå til den næste indstilling. Hvis ikke, kan du altid ændre konfigurationen tilbage til standardværdien.
Ved at ændre de parametre, der er konfigureret i NGINX-konfigurationsfilerne som f.eks nginx.conf og virtuelle værtsfiler, kan du hacke NGINX for at give den bedste ydeevne.