Nginx-configuraties onder de knie krijgen voor optimale webserverprestaties
Wilt u snellere websites en betere serverprestaties? Nginx kan helpen. Met zijn event-driven design verwerkt Nginx duizenden verbindingen efficiënt, wat het een topkeuze maakt voor websites met veel verkeer en realtime-applicaties. Maar om het volledige potentieel te ontsluiten, is een goede configuratie essentieel.
Belangrijkste punten:
- Prestatieverbetering: Pas werkprocessen aan en schakel compressie in om het resourcegebruik te verminderen en reacties te versnellen.
- Verkeer verwerken: Gebruik load balancing om het verkeer over servers te verdelen en te optimaliseren voor zware belasting.
- Beveiligde verbindingen: Configureer SSL-beëindiging voor betere beveiliging zonder de backendservers te overbelasten.
- Realtime-apps: Stel WebSocket-ondersteuning in voor naadloze communicatie op realtimeplatforms.
- Effectief toezicht houden: Gebruik hulpmiddelen zoals Prometheus en Grafana om de serverstatus en -prestaties bij te houden.
Voorbeelden van snelle installatie:
- Werkprocessen: Matchen met CPU-cores (
werkprocessen 4;). - Compressie: Gzip inschakelen (
gzip aan; gzip_comp_level 6;). - Cachen: Proxycaching configureren voor snelheid (
proxy_cache_pad /var/cache/nginx;). - Loadbalancing: Verdeel het verkeer met round-robin of met zo min mogelijk verbindingen.
Professionele tip: Controleer en verfijn uw instellingen regelmatig om uw server soepel te laten draaien. Of u nu websites met veel verkeer, statische content of realtime-apps beheert, deze configuraties kunnen het verschil maken.
Prestatie-afstemming NGINX Open Source en NGINX Plus

Belangrijkste Nginx-configuratiebestanden en -instellingen
Om het maximale uit uw Nginx-server te halen, moet u eerst de configuratiebestanden begrijpen en de belangrijkste instellingen verfijnen. Hier volgt een overzicht van wat u moet weten.
Nginx-configuratiebestanden begrijpen
Nginx-instellingen zijn onderverdeeld in twee hoofdgebieden:
- Globale instellingen: Gevonden in
/etc/nginx/nginx.conf - Site-specifieke instellingen: Gelegen in
/etc/nginx/sites-beschikbaar/
Test uw configuratie met nginx-t om er zeker van te zijn dat het foutloos is.
Werkprocessen en verbindingen afstemmen
Werkprocessen en verbindingen spelen een grote rol in hoe goed uw server presteert. Hier is een snelle handleiding om ze in te stellen:
| Instelling | Beschrijving | Voorbeeldwaarde |
|---|---|---|
werkprocessen | Aantal werkprocessen | Komt overeen met CPU-cores |
werker_verbindingen | Maximaal aantal verbindingen per werknemer | 1024 – 2048 |
keepalive_timeout | Verbindingstime-out | 65 seconden |
Tip: Pas deze waarden aan op basis van de hardware van uw server.
Als uw server bijvoorbeeld 4 CPU-cores heeft, kan uw configuratie er als volgt uitzien:
werkprocessen 4; gebeurtenissen { werkverbindingen 1024; } Nadat u de werkprocessen hebt geoptimaliseerd, kunt u de prestaties verder verbeteren door compressie en caching in te schakelen.
Gzip-compressie en -caching gebruiken
Compressie en caching helpen de bandbreedte te verminderen en laadtijden te verbeteren. Hier is hoe u ze configureert:
Gzip-compressie inschakelen:
gzip aan; gzip_comp_level 6; gzip_types tekst/platte tekst/css toepassing/json toepassing/javascript; Caching instellen:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:10m inactive=60m; proxy_cache one; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; De proxy_cache_pad richtlijn creëert een cachezone voor vaak bekeken content, wat de belasting van uw backend verlaagt. U kunt ook open_bestand_cache om veelgebruikte bestanden in het geheugen op te slaan, waardoor het schijfgebruik wordt beperkt.
Geavanceerde technieken voor load balancing en SSL
Deze technieken zijn gebaseerd op optimalisatie van werkprocessen en caching en richten zich op het verbeteren van de distributie en beveiliging van het verkeer.
Load balancing instellen
Nginx biedt krachtige tools om inkomend verkeer over meerdere servers te verspreiden. Hier is een basisconfiguratie:
upstream backend { # Standaard: round-robin voor gebalanceerde distributieserver localhost:8080; server localhost:8081; server localhost:8082; # Verwijder commentaar voor de minste verbindingen (beter voor ongelijkmatige workloads) # least_conn; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } - Round-robin is ideaal voor servers met vergelijkbare responstijden.
- Minste verbindingen werkt beter wanneer de complexiteit van verzoeken varieert, waardoor overbelasting van trage servers wordt voorkomen.
- Voor sessiepersistentie, schakel in IP-hash om gebruikers consequent naar dezelfde server te leiden.
SSL-beëindiging configureren
SSL-beëindiging verschuift encryptietaken naar Nginx, waardoor de werklast op backendservers wordt verminderd. Onderzoek van Bobcares suggereert dat dit de SSL-handshakelatentie met wel 50% kan verminderen.
Hier ziet u hoe u SSL-beëindiging combineert met load balancing:
http { upstream backend { server localhost:8080; server localhost:8081; } server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private/key.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers aan; ssl_session_cache gedeeld:SSL:10m; locatie / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } Belangrijke SSL-tips:
- Blijf bij TLS 1.2 en 1.3 voor een betere beveiliging.
- Geef prioriteit aan server-side-coderingen voor sterkere encryptie.
- Schakel sessiecaching in om de prestaties te verbeteren.
Nginx aanpassen aan specifieke behoeften
Nginx optimaliseren voor websites met veel verkeer
Voor websites met veel verkeer moet de configuratie van Nginx worden verfijnd om zware lasten effectief te verwerken. Het aanpassen van belangrijke parameters kan de responsiviteit van de server en de algehele prestaties aanzienlijk verbeteren.
Aanpassingen van de buffergrootte
http { client_body_buffer_grootte 16k; client_header_buffer_grootte 4k; client_max_body_grootte 8m; grote_client_header_buffers 4 8k; } Deze instellingen geven prioriteit aan geheugengebruik boven schijf-I/O, waardoor de verwerking van aanvragen wordt versneld. Bijvoorbeeld door client_body_buffer_grootte Vermindert de noodzaak voor het schrijven van tijdelijke bestanden tijdens aanvragen.
Efficiënt logbeheer
http { access_log /var/log/nginx/access.log gecombineerde buffer=32k flush=5s; error_log /var/log/nginx/error.log waarschuwing; } Door een buffer van 32 KB en een flush-interval van 5 seconden te gebruiken, worden schijfbewerkingen tot een minimum beperkt, terwijl de logboeken nauwkeurig en actueel blijven.
Time-outinstellingen
http { client_body_timeout 12; client_header_timeout 12; send_timeout 10; } Met deze time-outwaarden voorkomt u dat trage clients onnodig serverbronnen verbruiken.
Zodra deze aanpassingen zijn doorgevoerd, kan Nginx ook worden aangepast voor toepassingen die continue communicatie vereisen, zoals WebSockets.
Nginx configureren voor WebSocket-ondersteuning
WebSockets zijn een cruciaal onderdeel van realtime-applicaties. Het correct instellen van Nginx om WebSocket-verbindingen te verwerken, zorgt voor soepele prestaties, zelfs onder belasting.
map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name example.com; location /websocket { proxy_pass http://backend_server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; # Time-outinstellingen voor WebSocket-verbindingen proxy_read_timeout 300s; proxy_send_timeout 300s; } } Belangrijkste WebSocket-configuratiedetails:
| Richtlijn | Doel |
|---|---|
| proxy_http_versie | Schakelt HTTP/1.1 in voor WebSocket-ondersteuning |
| proxy_read_timeout | Stelt de maximale tijd tussen datapakketten in |
| proxy_verzend_timeout | Definieert de maximale tijd voor het verzenden van gegevens |
| proxy_cache_omzeilen | Schakelt caching uit voor WebSocket-verkeer |
De kaart De richtlijn beheert verbindingsupgrades efficiënt en zorgt voor een soepele WebSocket-communicatie.
Om misbruik te voorkomen, kan snelheidsbeperking worden toegepast op WebSocket-verbindingen:
http { limit_req_zone $binary_remote_addr zone=websocket_limit:10m rate=5r/s; locatie /websocket { limit_req zone=websocket_limit burst=20 nodelay; # ... rest van de WebSocket-configuratie } } Met deze configuratie worden IP's beperkt tot 5 verzoeken per seconde met een burst van 20 verzoeken. Zo bent u beschermd tegen DoS-aanvallen en blijft de beschikbaarheid van de service behouden.
sbb-itb-59e1987
Best practices voor Nginx-prestaties en -bewaking
Door uw Nginx-configuratie na de eerste installatie optimaal te houden, zorgt u ervoor dat deze effectief kan omgaan met veranderende workloads.
Belangrijkste aandachtsgebieden
Om de prestaties van Nginx te verbeteren, moet u specifieke instellingen verfijnen die rechtstreeks van invloed zijn op de efficiëntie van uw server.
Het beheren van werkprocessen
De werknemer_rlimit_geenbestand richtlijn is cruciaal voor het beheren van bestandsdescriptoren. Het zorgt ervoor dat uw server meerdere gelijktijdige verbindingen aankan zonder limieten te bereiken tijdens periodes met veel verkeer:
werknemer_rlimit_geenbestand 65535; Open File Cache gebruiken
Open bestandscache minimaliseert schijf-I/O door metagegevens voor vaak geopende bestanden te cachen, wat de levering van statische inhoud versnelt:
http { open_file_cache max=1000 inactief=20s; open_file_cache_geldig 30s; open_file_cache_min_gebruiken 2; open_file_cache_errors aan; } Zodra deze optimalisaties zijn doorgevoerd, is regelmatige monitoring essentieel om de continue prestaties te waarborgen en gebieden te identificeren die verdere aanpassing behoeven.
Nginx-prestaties bewaken
Monitoring helpt bij het bijhouden van de prestaties van uw server en onthult eventuele knelpunten of inefficiënties. Belangrijke statistieken om in de gaten te houden zijn onder andere verzoekpercentages, foutpercentages en resourcegebruik. Tools zoals Prometheus en Grafana maken het gemakkelijker om deze gegevens te verzamelen en visualiseren.
Aanbevolen Monitoring-hulpmiddelen
| Hulpmiddel | Doel | Belangrijkste statistieken |
|---|---|---|
| Prometheus | Verzamelt gegevens over liveoptredens | Aanvraagpercentages, responstijden, foutpercentages |
| Grafana | Visualiseert prestatietrends | CPU-gebruik, geheugenverbruik, verkeerspatronen |
| htop | Houdt het gebruik van systeembronnen bij | Procesgebruik, geheugentoewijzing |
Prestatiemetingen instellen
Schakel statusbewaking in Nginx in door het volgende te configureren:
locatie /nginx_status { stub_status aan; access_log uit; 127.0.0.1 toestaan; alles weigeren; } Deze opstelling biedt inzicht in:
- Actieve verbindingen
- Totaal geaccepteerde verbindingen
- Statistieken over de afhandeling van verzoeken
- Lezen, schrijven en wachten op verbindingen
Logs effectief analyseren
Gebufferde logging kan de belasting van de schijf verminderen door log-schrijfbewerkingen te groeperen. Dit helpt de serverprestaties te behouden zonder de nauwkeurigheid van uw logs op te offeren.
"Regelmatige monitoring en aanpassing op basis van prestatiegegevens zijn cruciaal voor het behalen van optimale resultaten. Het is essentieel om te voorkomen dat u te veel wijzigingen tegelijk aanbrengt, omdat dit het oplossen van problemen kan compliceren."
Hostingopties voor Nginx
Het kiezen van de juiste hostingomgeving is net zo belangrijk als het finetunen van Nginx-configuraties. Het juiste platform zorgt ervoor dat uw optimalisaties de beste resultaten opleveren.
Kenmerken van Serverion hosting

Serverion biedt een hostingplatform dat speciaal is ontworpen voor Nginx en uitzonderlijke prestaties en betrouwbaarheid biedt.
Opslag en prestaties
Serverion maakt gebruik van SSD-opslag die is geoptimaliseerd voor Nginx, waardoor de I/O-latentie wordt verminderd en de toegang tot configuratiebestanden en logboeken wordt versneld.
Veiligheidsinfrastructuur
Met DDoS-bescherming op ondernemingsniveau verbetert Serverion de beveiliging van Nginx. Dit zorgt voor uptime tijdens aanvallen en vult de load-balancing-functies van Nginx aan.
| Brontype | Specificaties | Voordelen voor Nginx |
|---|---|---|
| CPU | Xeon Quad-Core | Verwerkt werkprocessen efficiënt |
| RAM | Tot 16 GB | Verbetert de cacheprestaties |
| opslagruimte | SSD-gebaseerd | Versnelt de toegang tot bestanden |
| Dataverkeer | Hoge capaciteit | Ondersteunt betrouwbare load balancing |
Schaalbare infrastructuur
De plannen van Serverion zijn ontworpen om zich aan te passen aan uw groeiende verkeersbehoeften. Dit zorgt ervoor dat uw Nginx-setup de toegenomen vraag aankan zonder prestatieverlies.
"Regelmatige monitoring en prestatie-optimalisatie zijn essentieel bij het hosten van Nginx. De juiste hostingomgeving moet zowel de resources als de tools bieden die nodig zijn voor het behouden van optimale serverprestaties."
Deskundige ondersteuning
Het 24/7 supportteam van Serverion bestaat uit Nginx-specialisten die u kunnen helpen met configuratieaanpassingen en prestatieoptimalisaties op maat van uw behoeften.
Conclusie en laatste tips
Samenvatting van de belangrijkste punten
Om het maximale uit Nginx te halen, moet u zich richten op een duidelijke, stapsgewijze aanpak. Begin met het begrijpen van de hardwarelimieten en verkeerspatronen van uw server. Vanaf daar kunt u instellingen zoals werkprocessen, caching en load balancing verfijnen om ervoor te zorgen dat uw server soepel en efficiënt draait.
Stappen om te beginnen
- Configuraties valideren: Voordat u wijzigingen live doorvoert, gebruikt u
nginx-tom uw configuraties op fouten te controleren. - Kernoptimalisaties:
- Overeenkomst
werkprocessennaar de CPU-cores van uw server (bijv.werkprocessen 4voor een 4-core server). - Schakel gzip-compressie in om de bestandsgrootte te verkleinen met 50-70%.
- Pas de buffergroottes aan om verzoeken efficiënter te verwerken.
- Overeenkomst
- Geavanceerde functies:
- Stel SSL-beëindiging in om verbindingen te beveiligen.
- Configureer de inhoudscache met de juiste vervaldatums.
- Gebruik load balancing die is afgestemd op uw verkeerspatronen.
- Installeer hulpmiddelen zoals Prometheus en Grafana om de prestaties te controleren.
Prestatiebewaking: Het is belangrijk om de prestaties van uw server in de gaten te houden. Houd statistieken bij zoals verzoeksnelheden, responstijden en resourcegebruik om problemen op te sporen voordat ze gebruikers treffen.
"Regelmatige monitoring en prestatie-optimalisatie zijn essentieel bij het hosten van Nginx. De juiste combinatie van configuratie-instellingen en monitoringtools zorgt voor optimale serverprestaties in de loop van de tijd."
Veelgestelde vragen
Hier vindt u antwoorden op veelgestelde vragen over Nginx-configuraties, zodat u problemen kunt oplossen en de prestaties kunt verbeteren.
Hoe kan ik controleren of Nginx cachet?
Om te controleren of Nginx content cachet, inspecteer je de HTTP-responsheaders. Zoek naar:
- X-cache: Een "HIT"-waarde betekent dat de inhoud in de cache is opgeslagen.
- X-Cache-status: Geeft de huidige cachestatus aan.
U kunt deze opdracht gebruiken om de headers te bekijken:
krul -I https://uwwebsite.com Opmerking: Zorg ervoor dat deze headers zijn geconfigureerd in uw Nginx-installatie. Anders worden ze niet in het antwoord weergegeven.
Wat zijn de aanbevolen bufferinstellingen?
Hier is een voorbeeldconfiguratie voor het efficiënt instellen van buffers:
client_body_buffer_grootte 10K; client_header_buffer_grootte 1K; client_max_body_grootte 8m; grote_client_header_buffers 4 4k; Hoe schakel ik WebSocket-ondersteuning in?
Om WebSocket-ondersteuning in te schakelen, moet u ervoor zorgen dat uw proxy_pas directive verwijst naar de WebSocket backend server. Voor gedetailleerde instructies, zie de eerdere sectie over WebSocket configuratie.
Hoe kan ik SSL veilig configureren?
Gebruik de volgende configuratie om SSL veilig in te stellen:
server { luister 443 ssl; servernaam example.com; ssl_certificaat /pad/naar/cert.crt; ssl_certificaatsleutel /pad/naar/cert.sleutel; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HOOG:!aNULL:!MD5; } Hoe optimaliseer ik Nginx voor veel verkeer?
Voor websites met veel verkeer moet u zich op de volgende belangrijke gebieden concentreren:
- Overeenkomst
werkprocessennaar het aantal CPU-kernen en toenamewerker_verbindingenom meer verbindingen te verwerken. - Stel effectieve caching in om de serverbelasting te verminderen.
- Pas de buffergroottes aan om verzoeken efficiënter te verwerken.
"Regelmatige monitoring en prestatie-optimalisatie zijn essentieel bij het hosten van Nginx. De juiste combinatie van configuratie-instellingen en monitoringtools zorgt voor optimale serverprestaties in de loop van de tijd."