Lighttpd è un server web open source noto per le sue eccellenti prestazioni in molti ambienti. Grazie ai bassi requisiti hardware, gestisce un elevato traffico dati anche su sistemi poco performanti.
Questo tutorial fornisce una spiegazione passo passo su come installare e configurare Lighttpd su Ubuntu 18.04 e su come massimizzarne le prestazioni attivando la compressione dei dati, configurando un host virtuale e migliorando i parametri keep-alive.
Per prima cosa, connettiti al tuo server tramite una connessione SSH. Se non l'hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in modo sicuro con SSH. Nel caso di un server locale, vai al passaggio successivo e apri il terminale del tuo server.
Installazione di Lighttpd
In primo luogo, aggiorna i repository di distribuzione, per essere sicuro di scaricare l'ultima versione di Lighttpd:
$ sudo apt update
Quindi, procedi con l'installazione eseguendo il seguente comando:
$ sudo apt install lighttpd
Una volta completata l'installazione, il servizio Lighttpd è pronto per essere abilitato e avviato, ma prima potrebbe essere necessario abilitare Lighttpd per l'ascolto anche su indirizzi ipv4.
Apri il file di configurazione in /etc/lighttpd/lighttpd.conf usando il tuo editor di testo preferito (vim / nano).
Una sezione commentata, che configura l'uso delle porte si troverà all'interno del file :
##
## bind to a specific IP
##
server.bind = "localhost"
Quindi, procedi modificandolo come segue:
##
## bind to a specific IP
##
#
server.bind = "localhost"
$SERVER["socket"] == "0.0.0.0" { }
A questo punto è tutto pronto per avviare il servizio:
$ sudo systemctl start lighttpd
Il servizio può anche essere impostato per l'avvio automatico all'avvio del sistema:
$ sudo systemctl enable lighttpd
Configurazione firewall
In caso di firewall sul tuo sistema, configuralo per abilitare il traffico HTTP e il traffico HTTPS sul tuo computer.
Per consentire il traffico HTTP (porta 80) e HTTPS (porta 443), utilizzare i seguenti comandi:
$ sudo ufw allow 80
$ sudo ufw allow 443
Una volta completati tutti i passaggi, testare il funzionamento del server web visitando l'indirizzo http://
Radice del documento
Per modificare i contenuti visibili sul web server è sufficiente modificare il contenuto della cartella /var / www / lighttpd, come indicato anche nel file di configurazione /var/etc/lighttpd.conf:
var.server_root = "/var/www"
##
## Document root
##
server.document-root = server_root + "/lighttpd"
Per ulteriori informazioni sul file di configurazione, tutte le opzioni disponibili sono disponibili sui documenti ufficiali:https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ConfigurationOptions .
Attivazione della compressione dei dati
Una delle prime ottimizzazioni, attivabili su Lighttpd, è la compressione dei dati prima dell'invio. Ciò ridurrà il consumo di larghezza di banda del tuo server web, oltre a velocizzare la trasmissione dei dati.
Per attivare la compressione, apri il file nel percorso /etc/lighttpd/modules.conf.
Trovi la sezione dedicata al modulo mod_compress:
##
## mod_compress
##
#include "conf.d/compress.conf"
Deseleziona la riga di inclusione per leggere il file di configurazione del modulo, quindi attivalo:
##
## mod_compress
##
include "conf.d/compress.conf"
Prima di utilizzare il modulo, creare la cartella in cui Lighttpd normalmente memorizza i file compressi. quindi per non rigenerarli in seguito:
$ sudo mkdir /var/cache/lighttpd
$ sudo mkdir /var/cache/lighttpd/compress
Ora cambia il proprietario della cartella per concedere i permessi a Lighttpd:
$ sudo chown lighttpd:lighttpd /var/cache/lighttpd/compress/
A questo punto, riavvia il servizio:
$ sudo systemctl restart lighttpd
Installazione di un host virtuale
Di seguito viene spiegato come configurare un host virtuale utilizzando come esempio un dominio fantasy (tuodominio.com). Innanzitutto, prepara le directory necessarie per ospitare il sito Web:
mkdir -p /var/www/vhosts/yourdomain.com/htdocs
chown lighttpd:lighttpd /var/www/vhosts -R
Con i comandi mostrati sopra, è possibile creare l'intero albero delle directory. Ora, imposta l'utente Lighttpd come proprietario delle cartelle.
Normalmente Lighttpd non è abilitato a leggere le configurazioni degli host virtuali. Quindi, continua l'abilitazione modificando la sezione sotto indicata nel file /etc/lighttpd/lighttpd.conf:
#######################################################################
##
## custom includes like vhosts.
##
#include "conf.d/config.conf"
include "/etc/lighttpd/vhosts.d/*.conf" #enable the virtual host reading
##
######################################################################
Ora è possibile creare un file specifico per il tuo dominio in /etc/lighttpd/vhosts.d/yourdomain_en.conf:
$HTTP["host"] == "yourdomain.com" {
var.server_name = "yourdomain.com"
server.name = server_name
server.document-root = vhosts_dir + "/" + server_name + "/htdocs"
##
## use a separate access log file
## At the moment, you cannot have different error log files.
##
accesslog.filename = log_root + "/" + server_name + "/access.log"
}
Una volta salvato il file, riavvia Lighttpd per applicare tutte le modifiche:
$ sudo systemctl restart lighttpd
Ottimizzazione Keep-Alive
Migliorare i parametri http keep-alive può avere un impatto positivo sulla gestione del traffico e, quindi, può essere utile per un'ulteriore ottimizzazione delle prestazioni di Lighttpd,I parametri di default del server sono i seguenti (presenti nel file / etc/lighttpd/lighttpd.conf):
server.max-keep-alive-idle = 5
server.max-keep-alive-requests = 16
server.max-read-idle = 60
server.max-fds = 2048
server.max-write-idle = 360
I parametri di cui sopra manterranno 16 connessioni attive per 5 secondi, anche se potrebbero non essere più utilizzate dai client. Ciò potrebbe comportare un esaurimento dei socket aperti contemporaneamente (indicato come valore massimo in server.max-fds). In caso di traffico elevato, potrebbe essere necessario limitare questi limiti:
server.max-keep-alive-idle = 4
server.max-keep-alive-requests = 4
server.max-read-idle = 30
server.max-write-idle = 120
Limitando il limite di tempo e il numero di richieste, il web server chiuderà le connessioni più frequentemente e consentirà la gestione di un traffico maggiore.
Una volta applicate le modifiche, ricordarsi di riavviare il servizio tramite:
$ sudo systemctl restart lighttpd