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:
- 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.
- 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.
- 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).
- Caching: Memorizzazione nella cache di risorse statiche e dinamiche per ridurre il carico sui backend e accelerare le risposte.
- 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.
- Compressione: Compressione dei dati (ad esempio, Gzip) prima di inviarli al client per ridurre il traffico e accelerare il caricamento delle pagine.
- 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.
- 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;
}
}