TAGS CLOUD
Incrementa dimensioniDecrementa dimensioni
Il “cocktail” perfetto per un server web highspeed
Lighttpd, PHP e XCache: basta miscelare questi elementi per mettere su un sito ad alte prestazioni in grado di soddisfare rapidamente ogni richiesta
(pagina 1 di 4)
L'obiettivo che ci proponiamo è installare e configurare un “server web ad alte prestazioni”. Ma cosa si intende esattamente con questa affermazione. In generale, in campo informatico, questa definizione può essere tradotta con richiesta di risorse hardware ridotta al minimo e velocità di esecuzione, cioè rapidità nello svolgere il compito per cui il software è stato sviluppato. Ma, volendo, nella stessa affermazione possiamo far rientrare anche sicurezza, affidabilità e stabilità, in modo da ottenere un quadro più generale. Ovviamente, tutto questo vale anche nell'ambito dei server web, dove l'argomento velocità di esecuzione è particolarmente sentito: non è mai opportuno far attendere troppo un utente che ha fatto richiesta di una pagina web, altrimenti è probabile che la prossima volta “sbarcherà” su altri lidi. Allora vediamo cosa è possibile fare in questo senso.
Un mondo ricco di alternative
Così come accade per altre categorie di software, anche in quella dei server web le alternative non mancano, quindi alla fine tutto dipende da esigenze individuali, dal tipo di sistema operativo utilizzato, dal comportamento specifico che si vuole ottenere e dalle richieste che bisogna soddisfare. Allora, è chiaro che la scelta è influenzata proprio dal sistema operativo utilizzato. Ad esempio, mettere su un server web in ambiente Microsoft significa, a parte qualche outsider, dover scegliere tra Apache ( http://httpd.apache.org) o IIS di Misoft ( www.microsoft. com/window sserver2003/ iis/default. mspx)? Il primo, Open Source, al momento è utilizzato su circa il 60% dei server presenti su Internet, il secondo, proprietario, è un ottimo sistema, ma spesso soggetto a qualche bug di sicurezza. Inoltre, molto può dipendere anche dalle applicazioni che il server deve eseguire, le quali, purtroppo, a volte richiedono esplicitamente l'uno o l'altro sistema, impedendo di fatto una scelta ponderata in relazione a quello che ci serve specificatamente. In ambiente GNU/Linux e Unix più in generale, invece, le alternative possibili sono molto più numerose, permettendoci di indirizzare le nostre scelte verso una piattaforma che calzi a pennello con le nostre esigenze. In questo caso specifico, poiché l'obiettivo principale è raggiungere il massimo dal punto di vista delle prestazioni velocistiche, la scelta è caduta su lighttpd. In realtà, ci sarebbero anche alternative come thttpd ( www.acme.com/software/thttpd) e nginx ( http://nginx.net), ma le loro loro caratteristiche sono orientate a campi di applicazione diversi, che puntano a soddisfare esigenze differenti da quelli che sono i nostri obiettivi. Per la precisione, thttpd è molto adatto per essere installato su dispositivi embedded, mentre nginx è orientato alla gestione di reverse proxy, un particolare tipo di server che si occupa di smistare le richieste verso altri server che elaborano effettivamente le richieste da parte dei client, come, ad esempio i server web Apache, IIS, lighttpd, ecc. In questo caso, quindi, scartiamo queste due ipotesi e passiamo a lighttpd.

Lighttpd è stato installato correttamente e risponde alle nostre richieste


LIGHTTPD si accontenta di poco
Il suo pregio più grande è la leggerezza
Il vantaggio principale offerto da Lighttpd, in particolare se confrontato ad altri software analoghi, è sicuramente la leggerezza che, comunque, non ne pregiudica la potenza e le funzionalità. Per questo motivo, una qualunque macchina in grado di “far girare” decentemente una distribuzione GNU/Linux riesce a farlo funzionare senza riscontrare alcun decadimento di prestazioni. Ovviamente, tutto dipende dalle richieste che il server dovrà soddisfare, ma in genere le risorse hardware necessarie sono ridotte al minimo. Discorso diverso se si vuole fare in modo che vengano servite anche pagine dinamiche in PHP, ma questo è più che altro un problema di prestazioni legato alla stessa piattaforma di sviluppo, in parte risolvibile attraverso la configurazione di opportuni sistemi di caching.
LIGHTTPD come soluzione del problema "C10K"
Lighttpd (pronunciato “lighty”) è nato come “passatempo” di un laureando in informatica. Questo sviluppatore, occupato nella stesura della tesi, aveva bisogno di trovare qualcosa di alternativo a cui dedicarsi quando non era impegnato nel lavoro accademico. La sfida? Risolvere il problema “c10k”, ovvero creare un programma che riuscisse a gestire diecimila connessioni contemporanee girando su un unico server. In queste condizioni, Apache, per quanto affidabile, tende a rallentare e ad avere problemi di performance già dopo le prime 100/150 connessioni e questo, purtroppo, non è risolvibile se non attraverso una revisione totale del codice. In breve tempo, lo sviluppatore risolse il problema con un approccio totalmente nuovo. Tutto ciò che poteva essere riutilizzato veniva messo in una cache. Le operazioni, quindi, venivano eseguite soltanto una volta ogni qualche secondo e i risultati venivano tenuti in memoria per permettere al sistema di sgravarsi dalla necessità di rieseguire operazioni già archiviate. In breve tempo furono inserite tutte le principali funzionalità necessarie ad un completo webserver, tenendo sempre in gran conto efficienza, sicurezza e scalabilità. Attualmente il progetto è abbastanza maturo da permetterne l'applicazione anche su sistemi più complessi e moltissimi amministratori hanno deciso di utilizzarlo per rimpiazzare Apache. I motivi della ”migrazione” sono molti, mentre sono pochi gli amministratori che poi tornano indietro.
Installiamo il server web
Lighttpd è un prodotto abbastanza maturo. Quasi tutte le principali distribuzioni forniscono i pacchetti precompilati pronti per l'installazione. In Debian GNU/Linux e Ubuntu, ad esempio, è sufficiente eseguire da una console il comando seguente:
sudo apt-get install lighttpd
Così facendo installiamo il programma e le poche dipendenze necessarie alla sua corretta esecuzione. Dopo aver eseguito questo comando, lighttpd è immediatamente pronto all'uso e dovrebbe essere disponibile anche una pagina di test, per verificarne il funzionamento.  In caso contrario è possibile gestire l'esecuzione di lighttpd con il comando /etc/init.d/lighttpd start, oppure stop o restart a seconda delle esigenze, come accade per tutti gli altri servizi in generale. Ovviamente, è possibile installare lighttpd anche partendo dai sorgenti. Gli unici requisiti (a parte un compilatore, ovviamente) sono gli header (i pacchetti di sviluppo) delle librerie libpcre zlib. A questo punto, per procedere con l'installazione, diventiamo root (su o sudo -s), preleviamo il pacchetto lighttpd- 1.4.18.tar.bz2 , scompattiamolo con tar -xvjf lighttpd-1.4.18.tar.bz2, entriamo nella nuova directory (cd lighttpd- 1.4.18) ed eseguiamo il solito ./configure, seguito subito dopo da make e make install; tutto verrà correttamente installato in /usr/local. Per avviare lighttpd, il comando è lighttpd -f , dove configfile è il file di configurazione del server. Una copia di tale file è disponibile nella directory doc dei sorgenti di lighttpd. Ovviamente, si tratta di una configurazione generica che deve essere adattata alle proprie esigenze. Come vedremo più avanti, per raggiungere il nostro obiettivo, è necessario installare anche altri componenti: PHP ( www.php.net) e il tool XCache ( http://xcache.lighttpd.net). Eseguiremo l'installazione prendendo ancora una volta come esempio Debian GNU/Linux (Ubuntu), ma seguendo le indicazioni contenute nel box “Lightppd sulle altre distro”, è facile fare la stessa cosa su altri sistemi, in alcuni casi, però, bisogna controllare i nomi dei pacchetti che potrebbero essere leggermente differenti. Per quanto riguarda, invece, la necessità di installare XCache, in particolare, sottolineamo che la sua presenza è indispensabile e più avanti scopriremo il perché.
Aggiungere il supporto PHP su Ubuntu
Lighttpd necessità di questo importante componente. Ecco come installarlo
Installazione Php


Apriamo una console da Applicazioni/ Accessori/Terminale ed eseguiamo il comando sudo apt-get install php5-cgi. Verrà installato l'ambiente di esecuzione PHP e il supporto (CGI), che potrà essere così utilizzato dal webserver.
Un modulo particolare


Lighttpd dispone già del modulo “fastcgi”, basta solo abilitarlo. In Debian GNU/Linux e Ubuntu possiamo farlo con il comando “lighty-enable-mod” (come per Apache) nel modo seguente: lighty- enable-mod fastcgi.
Ultimi dettagli


Abbiamo installato PHP5, quindi è necessario indicare al “motore” fastcgi di utilizzare l'eseguibile corretto. Apriamo il file /etc/lighttpd/conf-enabled/ 10-fastcgi.conf, sostituiamo “php5- cgi” a “php-cgi” e riavviamo lighttpd.
LIGHTPPD sulle altre Distro
Se presente nelle repository basta un comando
Lighttpd è disponibile come pacchetto precompilato per la maggior parte delle distribuzioni. Abbiamo visto come installarlo su Debian GNU/Linux, Ubutnu e tutte le derivate da queste, ma anche su altre distribuzioni come Fedora, Mandriva, Gentoo, Sabayon e OpenSUSE è possibile farlo con la stessa semplicità. Infatti, se le sorgenti dei pacchetti (repository) sono correttamente configurate, la procedura di installazione si limita ad un solo comando, da scegliere tra quelli seguenti a seconda di quale distribuzione si utilizza:
Fedora - yum install lighttpd
Mandriva - urpmi lighttpd
OpenSUSE - yast -i lighttpd
Gentoo - emerge lighttpd
Foresight - sudo conary update lighttpd
Arch Linux - pacman -S lighttpd
Struttura modulare e PHP
Lighttpd è stato sviluppato per essere modulare: appena installato, infatti, risulta configurato solo nelle funzioni di base e tutto quello che potrebbe peggiorare le sue performance è disattivato. Chi usa Apache potrebbe, quindi, trovarsi un po' disorientato, in quanto è abituato ad avere tutte le funzionalità più avanzate già pronte per essere utilizzate. L'installazione del motore PHP, ad esempio, prevede l'abilitazione del supporto “fast-cgi”. Lighttpd, per sua natura, delega a questo modulo il compito di eseguire programmi esterni (come Perl ( www.perl.com) o, appunto, PHP) e recuperarne il risultato dell'elaborazione. Il vantaggio principale di questo approccio è la possibilità di tenere sotto controllo tutte le parti del webserver e di fare in modo che un problema ad un programma esterno non possa compromettere il funzionamento del resto del sistema. Apache stesso, tra le modalità di esecuzione del codice PHP, prevede la possibilità di attivare una configurazione simile, e questa, in molti casi, sembra essere la scelta più azzeccata.
Adesso è il turno di XCache
Anche in questo caso i comandi da eseguire sono pochi e tutto avviene automaticamente
Installare XCACHE


Apriamo ancora una volta la console da Applicazioni/ Accessori/Terminale ed eseguiamo il comando sudo apt-get install php5- xcache, proprio come abbiamo fatto in precedenza per il componente PHP.
Il valore corretto

Pagina 1/4
Lascia un commento
Tag: server web highspeed, Lighttpd, PHP, XCache
Condividi