Appunti su Gentoo Linux

Web server lighttpd

Un web server è un fornitore di pagine web. Quando si naviga in internet e si accede a un certo sito web, quello che accade è che il nostro browser invia una richiesta per ottenere le pagine di un certo sito, tale richiesta viene girata al server che gestisce le pagine di quel sito, il server accoglie la richiesta, prepare le pagine e le invia al browser che le mostrerà sul vostro computer.

In ambiente Linux esistono due famosissimi web server: Apache e Lighttpd. Il primo è più potente ma più complesso. È usato nel 70% dei server web mondiali. Lighttpd è meno potente ma più snello e veloce. Viene usato solo nei casi dove non servono funzionalità troppo complicate oppure dove la velocità è cruciale. Basti pensare che YouTube usa Lighttpd.

Ora parlerò di come installare e configurare Lighttpd in un ambiente Gentoo. Prima di tutto installiamolo. Le use flag di default dovrebbero andare bene per un sito statico.

emerge -pv lighttpd

Il file di configurazione si trova in /etc/lighttpd/lighttpd.conf

Nel caso più semplice lighttpd permette di gestire un solo sito web, che risulta accessibile solamente dalla vostra rete locale. Per fare questo le impostazioni di default vanno bene. Non resta che lanciare il servizio:

/etc/init.d/lighttpd start

Come al solito, per lanciarlo all'avvio nel runlevel di default:

rc-update add lighttpd default

Ora se tutto è andato per il verso giusto, aprite un browser nello stesso pc in cui si trova lighttpd e andate all'indirizzo http://127.0.0.1 (questo particolare indirizzo viene anche chiamato localhost e significa sempre "il computer dove mi trovo ora"). Se tutto funziona dovrebbe comparire la scritta "Error 404. Page not found". Giustamente perché per ora il nostro sito web non ha alcuna pagina! Analogamente lo stesso test dovrebbe funzionare da qualsiasi altro computer della rete locale. Aprite un browser in uno qualsiasi dei computer della vostra rete locale e andate all'indirizzo locale del pc dove è installato lighttpd, nel mio caso http://192.168.1.4. Come potete vedere non c'è bisogno di specificare il numero della porta perché di default viene usata la porta 80. Volendo la si può cambiare con

server.port = 80

Se non usate la porta 80, nel browser dovete specificare a mano il numero della porta che avete scelto. Per esempio: http://127.0.0.1:3000

Ora un passo fondamentale: come aggiungere le pagine al nostro sito web? Le pagine del sito vanno messe nella cartella specificata nella variabile server.document-root del file di configurazione. Solitamente in Gentoo, di default, si ha questo:

var.basedir  = "/var/www/localhost"

server.document-root = var.basedir + "/htdocs"

Questo significa che la directory dove devono essere piazzate le pagine del sito è /var/www/localhost/htdocs. Andate in quella cartella e create un file di testo chiamato index.html e scriveteci dentro:

<!DOCTYPE html>
<html lang="it">
 <head>
  <meta charset="UTF-8">
  <title>Esempio di documento HTML5
 </head>
 <body>
   Questo è un esempio di documento!
 </body>
</html>

Ora riprovate ad accedere nuovamente a lighttpd. Stavolta invece della pagina "Error 404" dovreste vedere la scritta "Questo è un esempio di documento!"

Per rendere accessibile dall'esterno tale sito web bisogna far in modo di superare il router. Per fare questo basta reindirizzare il traffico della porta usata per lighttpd all'indirizzo IP locale del pc su cui è installato, appunto, lighttpd. (conviene usare la porta 80?) Dopodiché per accedervi dovete aprire un browser su un computer che non si trova nella LAN di casa vostra (andate da un vicino, usate il pc del lavoro, ecc...) e nella barra digitate l'indirizzo del vostro router. Per esempio http://218.123.23.15. (Aggiungete i due punti e il numero della porta se non state usando la porta 80). Ovviamente qui sorge il classico problema dell'IP dinamico trattato in altre pagine di questo sito e risolvibile iscrivendosi a servizi come DynDNS.

Se si vuole gestire più di un sito web, bisogna usare il cosiddetto virtual hosting. Questa possibilità è utile appunto se volete gestire in casa più siti web personali oppure se volete diventare fornitore di servizi web. Immaginate per esempio un sito come Altervista che fornisce domini di terzo livello, come appunto il mio sito. Quello che accade è che ogni dominio di terzo livello, cioè ogni sito che viene creato su Altervista, è indirizzato verso una cartella diversa del server. Vedi questo link: Virtual hosting con lighttpd.