Sobes.tech
Junior

Waarvoor wordt Nginx gebruikt?

sobes.tech AI

Antwoord van AI

Nginx is een hoogpresterende asynchrone webserver en reverse proxy-server, gebruikt voor:

  1. 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.
  2. 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.
  3. 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).
  4. Caching: Het cachen van statische en dynamische bronnen om de backend-belasting te verminderen en de responstijd te versnellen.
  5. 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.
  6. Compressie: Gegevens comprimeren (bijvoorbeeld Gzip) voordat ze naar de client worden gestuurd om het verkeer te verminderen en de pagina's sneller te laden.
  7. Verzoek-snelheidsbeperking: Bescherming van backend-systemen tegen overbelasting door het beperken van het aantal verzoeken van een enkele client binnen een bepaalde tijd.
  8. 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;
    }
}