Bump alla v2.5! Yeah.

Ieri sera ho deciso che era ora di portare a 2.5 la “versione” di questo blog su cui scrivo sempre piu` di rado.
Non temete: queste pagine continuano ad esser servite da vigorosi 167Mhz di CPU e 192Mb di ram, ma ho fatto oggi il “porting” da un eccellente webserver leggero (lighttpd) che pero` mi dava alcuni problemi ad nginx.

Avevo sempre avuto la curiosita` di provare nginx, ma l’ultima volta che ci avevo guardato era ricco di documentazione, in una sola lingua, e non quella che speravo: il russo. :-)

Invece dopo aver dato un’occhiata al wiki di documentazione, oggi ci ho provato.
E` stata una migrazione pressoche` indolore, a parte un fastidioso problema (mio) all’interno di una stanza di configurazione (sua). Una volta capito il perche` alcune cose non funzionavano come mi aspettavo (dopo che mettere l’access.log a livello di debug, aver ricompilato l’eseguibile con --with-debug, e — alla soglia della disperazione — essermi attaccato con ktrace all’eseguibile).

Rispetto a “lighty” la complessita` del file di configurazione e` forse di poco minore, come l’occupazione di memoria. Le performance sono per entrambi indiscutibili, nei prossimi mesi vedremo se quello che mi ha spinto a provare altro rispetto a lighty funziona meglio.
Da sottolineare che rispetto a lighty (singolo processo, singolo thread e I/O non bloccante con poll/epoll/kqueue/…), nginx e` piu` “alla Apache”, con un processo master e un numero configurabile di figli.
Apprezzabile, dal mio punto di vista, che nginx di default tenda ad installarsi in una directory di /usr/local dentro cui mette tutto (log, configurazione, file html): dal mio punto di vista questo permette di mantenere piu` pulito il filesystem.
Se siete interessati, qui c’e` un documento che spiega come configurarlo con particolare attenzione alla sicurezza.

Una curiosita`: lighttpd e` un progetto figlio di Dan Kegel, autore dell’interessante documento (nonostante sia del 2006) “The C10K problem” — problema che anche nginx afferma esplicitamente di risolvere. :-)