Prestandajustering av Nginx
Optimera Nginx worker-processer, anslutningsgränser och buffertstorlekar för maximalt genomflöde och låg latens.
Prestandajustering av Nginx är en gratis lektion i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för API-gateway och reverse proxy (Nginx + Spring Cloud Gateway), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) innehåller totalt 4 lektioner.
Förbättra Nginx-prestandan
Varför finjustera Nginx? För att hantera mer trafik, minska fördröjningen och säkerställa att dina webbapplikationer är snabba och responsiva. Det handlar om att utnyttja serverns resurser på bästa sätt.
Förstå arbetsprocesser
Nginx använder en master-worker-arkitektur. Masterprocessen läser konfigurationen och hanterar worker-processerna. Worker-processerna utför det faktiska arbetet med att hantera klientförfrågningar.
Konfigurera worker-processer
Direktivet worker_processes anger antalet worker-processer. En vanlig rekommendation är att ställa in det på auto (Nginx >= 1.9.1) eller på antalet CPU-kärnor.
worker_processes auto; # Or '4' for 4 CPU cores
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
}
}
}Maximalt antal worker-anslutningar
Varje worker-process kan hantera ett begränsat antal samtidiga anslutningar. Direktivet worker_connections anger denna gräns per worker-process. Detta omfattar både klient- och proxyanslutningar.
Justera worker-anslutningar
Ett högre värde för worker_connections gör att en enskild worker kan hantera fler klienter, vilket är bra för webbplatser med hög trafik. Om värdet sätts för högt kan det dock förbruka stora mängder minne. Använd ett värde som passar serverns resurser.
worker_processes auto;
events {
# Each worker can handle up to 4096 connections
worker_connections 4096;
use epoll; # For Linux systems, highly efficient
}
http {
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
}
}
}Nginx-buffertar förklarade
Nginx använder buffertar för att tillfälligt lagra data från klienter eller backendservrar. Genom att konfigurera buffertstorlekarna korrekt förhindrar du att långsamma klienter blockerar resurser och förbättrar den övergripande prestandan.
Buffertar för klientförfrågningar
Dessa buffertar hanterar inkommande data från klienter:
client_body_buffer_size: Buffert för klientförfrågningars innehåll (t.ex. filuppladdningar).client_header_buffer_size: Buffert för klientförfrågningars huvudfält.
Små förfrågningar får plats i minnet. Större förfrågningar kan skrivas till disk om detta har konfigurerats.
http {
client_body_buffer_size 16k; # Default is 8k/16k depending on OS
client_header_buffer_size 1k; # Default is 1k
large_client_header_buffers 4 8k; # 4 buffers of 8k each for larger headers
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
}
}
}Proxybuffertar för backendservrar
När Nginx fungerar som en reverse proxy buffrar det svar från backendservrar för att förbättra leveranshastigheten och minska belastningen på backend:
proxy_buffer_size: Storleken på den första bufferten för svarshuvudet.proxy_buffers: Antal och storlek på buffertarna för svarsinnehållet.
http {
proxy_buffer_size 128k; # First buffer for header
proxy_buffers 4 256k; # 4 buffers, each 256k, for response body
proxy_busy_buffers_size 256k; # Max size of buffers that can be busy
server {
listen 80;
server_name example.com;
location /api/ {
proxy_pass http://backend_app;
}
}
}Beständiga anslutningar (Keepalive)
Keepalive-anslutningar gör att en klient kan skicka flera förfrågningar över en och samma TCP-anslutning. Detta minskar anslutningsoverhead och förbättrar den upplevda fördröjningen.
keepalive_timeout: Hur länge en inaktiv keepalive-anslutning förblir öppen.keepalive_requests: Maximalt antal förfrågningar som en klient kan göra över en keepalive-anslutning.
http {
keepalive_timeout 65; # Default is 75s; set to optimize for client behavior
keepalive_requests 1000; # Default is 100; higher for persistent clients
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
}
}
}Direktiv för finjustering
Fundera på de centrala Nginx-direktiv för finjustering som vi har gått igenom. Vilket av följande påståenden om dem är FELAKTIGT?
Sammanfattning av Nginx-finjustering
Vi har gått igenom viktiga områden för finjustering av Nginx-prestanda:
- Worker-processer: Optimera CPU-användningen.
- Worker-anslutningar: Hantera samtidiga klientanslutningar.
- Buffertstorlekar: Hantera klient- och proxydata effektivt.
- Keepalive: Minska anslutningsoverhead.
Dessa inställningar är avgörande för att uppnå hög genomströmning och låg fördröjning, vilket ger en smidig användarupplevelse.
Lär dig API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Prestandajustering av Nginx” gratis?
Ja – hela texten till ”Prestandajustering av Nginx” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway), kan Ni uppgradera till CoddyKit PRO. Kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) innehåller totalt 4 lektioner.
Vad lär jag mig i ”Prestandajustering av Nginx”?
Optimera Nginx worker-processer, anslutningsgränser och buffertstorlekar för maximalt genomflöde och låg latens. Ni övar på API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)?
Du behöver inga förkunskaper. Utbildningen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Prestandajustering av Nginx”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)-lektionen?
Ja. Varje API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Loggning och mätvärden i Nginx
- Prestandajustering av Nginx
- Nginx i containerbaserade miljöer
- Omladdning utan driftstopp och testning av konfiguration