Junior
Waarvoor wordt Nginx gebruikt?
sobes.tech AI
Antwoord van AI
Nginx is een hoogpresterende asynchrone webserver en reverse proxy-server, gebruikt voor:
- Serveren van statische bestanden: Snelle en efficiënte levering van HTML, CSS, JavaScript, afbeeldingen en andere statische bronnen. Dankzij de asynchrone architectuur kan het een groot aantal gelijktijdige verbindingen verwerken met een laag resourcegebruik.
- Reverse proxy: Het doorsturen van clientverzoeken naar een of meerdere backend-servers (applicaties, API's) en het teruggeven van antwoorden aan de clients. Dit maakt load balancing, beveiligingsverbeteringen (door het verbergen van de interne netwerkstructuur) en SSL-terminatie mogelijk.
- Load balancing: Het verdelen van inkomende verzoeken over meerdere servers om de beschikbaarheid en schaalbaarheid van de applicatie te verhogen. Ondersteunt verschillende algoritmen (bijvoorbeeld round robin, least connections).
- Caching: Het cachen van statische en dynamische bronnen om de backend-belasting te verminderen en de responstijd te versnellen.
- SSL/TLS-terminatie: Het decoderen van HTTPS-verkeer voordat het naar de backend wordt gestuurd, wat de belasting op applicatieservers vermindert en centrale certificaatbeheer mogelijk maakt.
- Compressie: Gegevens comprimeren (bijvoorbeeld Gzip) voordat ze naar de client worden gestuurd om het verkeer te verminderen en de pagina's sneller te laden.
- Verzoek-snelheidsbeperking: Bescherming van backend-systemen tegen overbelasting door het beperken van het aantal verzoeken van een enkele client binnen een bepaalde tijd.
- Web Application Firewall (WAF): Basisbescherming tegen veelvoorkomende webaanvallen (bijvoorbeeld SQL-injecties, XSS).
# Voorbeeld van Nginx-configuratie voor het bedienen van statische bestanden en API-proxy
server {
listen 80;
server_name example.com; # Domeinnaam
location / {
root /var/www/html; # Pad naar statische bestanden
index index.html;
}
location /api/ {
proxy_pass http://backend_server:8080; # Proxy van API-verzoeken naar een andere server
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}