Sobes.tech
Junior

A cosa serve Nginx?

sobes.tech AI

Risposta dell'AI

Nginx è un server web asincrono ad alte prestazioni e un proxy inverso, utilizzato per:

  1. Servizio di file statici: Consegna rapida ed efficiente di HTML, CSS, JavaScript, immagini e altre risorse statiche. Grazie alla sua architettura asincrona, può gestire un gran numero di connessioni simultanee con basso consumo di risorse.
  2. Proxy inverso: Trasferimento delle richieste dei clienti a uno o più server backend (applicazioni, API) e restituzione delle risposte ai clienti. Ciò consente di bilanciare il carico, migliorare la sicurezza (nascondendo la struttura interna della rete) e gestire la terminazione SSL.
  3. Bilanciamento del carico: Distribuzione delle richieste in ingresso tra più server per aumentare disponibilità e scalabilità dell'applicazione. Supporta diversi algoritmi di bilanciamento (ad esempio, round robin, least connections).
  4. Caching: Memorizzazione nella cache di risorse statiche e dinamiche per ridurre il carico sui backend e accelerare le risposte.
  5. Terminazione SSL/TLS: Decifrare il traffico HTTPS prima di inviarlo al backend, riducendo il carico sui server applicativi e consentendo una gestione centralizzata dei certificati.
  6. Compressione: Compressione dei dati (ad esempio, Gzip) prima di inviarli al client per ridurre il traffico e accelerare il caricamento delle pagine.
  7. Limitazione della velocità delle richieste: Protezione dei backend da sovraccarichi limitando il numero di richieste da parte di un singolo client in un determinato intervallo di tempo.
  8. Firewall web (WAF): Protezione di base contro attacchi web comuni (ad esempio, iniezioni SQL, XSS).
# Esempio di configurazione di Nginx per servire file statici e proxy API

server {
    listen 80;
    server_name example.com; # Nome di dominio

    location / {
        root /var/www/html; # Percorso ai file statici
        index index.html;
    }

    location /api/ {
        proxy_pass http://backend_server:8080; # Proxy delle richieste API a un altro server
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}