1,522 21/03/2026 07/04/2026 3 min

Gestire un VPS con traffico elevato può portare a problemi di prestazioni. Spesso, un'elevata quantità di connessioni simultanee da parte di un singolo IP può saturare le risorse del server, causando timeout e rallentamenti. Limitare il numero di connessioni per IP è una soluzione efficace per garantire che il server rimanga reattivo e accessibile a tutti gli utenti.

Prerequisiti

  • Un VPS con sistema operativo Linux (Ubuntu, Debian, CentOS, ecc.)
  • Accesso come utente root o con permessi sudo
  • Installato e configurato Nginx o Apache come server web
  • Conoscenze di base su firewall e configurazioni di server

Step 1: Installare il Modulo di Limitazione delle Connessioni

Iniziamo installando il modulo necessario per limitare le connessioni. Se utilizzi Nginx, il modulo ngx_http_limit_conn_module è di solito già incluso. Per Apache, invece, dovrai attivare il modulo mod_qos.

Per Nginx, non è necessaria alcuna installazione aggiuntiva. Per Apache, usa il seguente comando:

sudo a2enmod qos

# Output: Module qos already enabled

Perché funziona: Attivando il modulo, permetti ad Apache di gestire le connessioni in modo più efficiente.

Step 2: Configurare Nginx per Limitare le Connessioni

Apri il file di configurazione di Nginx, di solito situato in /etc/nginx/nginx.conf. Aggiungi le seguenti righe nel contesto http {}:

limit_conn_zone $binary_remote_addr zone=addr:10m;

limit_conn addr 10;

# Output: (nessun output, modifica del file)

Perché funziona: Questa configurazione crea una zona di memoria per monitorare le connessioni per indirizzo IP e limita il numero massimo di connessioni a 10.

Note: Su distribuzioni come Fedora o RHEL, la sintassi rimane la stessa, ma i percorsi dei file potrebbero variare.

Step 3: Configurare Apache per Limitare le Connessioni

Per Apache, apri il file di configurazione del tuo Virtual Host (solitamente in /etc/httpd/conf/httpd.conf o /etc/apache2/sites-available/000-default.conf) e aggiungi:

QOSMaxConnPerIP 10

# Output: (nessun output, modifica del file)

Perché funziona: Questa riga imposta un limite di 10 connessioni simultanee per ogni singolo IP.

Step 4: Riavviare il Server Web

Dopo aver effettuato le modifiche, è necessario riavviare il server web per applicarle. Usa il seguente comando:

sudo systemctl restart nginx

# Output: (nessun output, riavvio del servizio)

Perché funziona: Il riavvio applica le nuove configurazioni al server web.

Verifica Finale

Per verificare che tutto funzioni correttamente, puoi utilizzare il comando netstat per controllare le connessioni attive:

netstat -an | grep :80 | wc -l

# Output: 10 (o meno, a seconda delle connessioni attive)

Interpretazione: Questo numero indica quante connessioni attive ci sono sulla porta 80. Dovrebbe essere uguale o inferiore a 10.

Troubleshooting

  • Errore: too many connections
    Causa: Hai superato il limite di connessioni impostato.
    Soluzione: Aumenta il limite in nginx.conf o nel file di configurazione di Apache.
  • Errore: connection refused
    Causa: Il server web non è in esecuzione o è stato configurato in modo errato.
    Soluzione: Verifica il servizio con sudo systemctl status nginx e riavvialo se necessario.
  • Errore: 403 Forbidden
    Causa: Problemi di permessi sul file di configurazione o sulla directory.
    Soluzione: Controlla i permessi e assicurati che il server web abbia accesso ai file necessari.

Conclusione

Hai imparato a limitare le connessioni per IP su un VPS Linux, migliorando le prestazioni e la sicurezza del tuo server. Il passo successivo potrebbe essere l'implementazione di un sistema di monitoraggio per tenere traccia delle connessioni e identificare eventuali problemi in tempo reale.