Il web server di riferimento
Apache HTTP Server serve oltre il 60% dei siti web a livello globale. Nato nel 1995 come insieme di patch applicate al server NCSA HTTPd — da cui il nome, “a patchy server” — è il web server open source più diffuso e il software che ha reso possibile la crescita del World Wide Web.
La versione attuale in produzione è la 1.3.x, stabile e matura, utilizzata su sistemi Unix, Linux e Windows. Lo sviluppo della versione 2.0, con una nuova architettura multi-processo, è in corso.
Architettura prefork
Apache 1.3 utilizza un modello di concorrenza basato sul prefork: all’avvio, il processo padre genera un pool di processi figli, ciascuno in grado di gestire una connessione client alla volta. Quando un processo figlio termina di servire una richiesta, torna disponibile per la successiva. Il numero di processi attivi viene regolato dinamicamente in base al carico.
Questo modello ha il vantaggio della stabilità: un errore in un processo figlio non compromette gli altri né il processo padre. Lo svantaggio è il consumo di memoria, poiché ogni processo mantiene il proprio spazio di indirizzamento. Per la maggior parte dei carichi di lavoro web, il compromesso è accettabile.
Moduli e configurazione
La potenza di Apache risiede nella sua architettura modulare. Le funzionalità sono distribuite in moduli caricabili che estendono il server senza modificarne il core:
- mod_rewrite: riscrittura delle URL basata su espressioni regolari
- mod_ssl: supporto per connessioni HTTPS via OpenSSL
- mod_php: esecuzione di script PHP all’interno del processo Apache
- mod_proxy: funzionalità di reverse proxy e forward proxy
- mod_vhost_alias: gestione dinamica dei virtual host
I virtual host permettono a un singolo server fisico di ospitare centinaia di siti web distinti, ciascuno con il proprio dominio, la propria document root e le proprie regole di accesso. Questa funzionalità è fondamentale per i provider di hosting condiviso.
La configurazione avviene tramite il file httpd.conf e i file .htaccess distribuiti nelle directory, che permettono configurazioni decentralizzate senza riavviare il server.
L’Apache Software Foundation
Lo sviluppo di Apache HTTP Server è coordinato dalla Apache Software Foundation (ASF), fondata nel 1999. L’ASF adotta un modello di governance meritocratico: i contributori guadagnano diritti di commit e voce nelle decisioni in base alla qualità e alla continuità dei loro contributi. Le decisioni vengono prese per consenso nella mailing list degli sviluppatori, con votazione formale quando il consenso non emerge.
Questo modello ha garantito continuità e indipendenza al progetto, e l’ASF lo ha esteso ad altri progetti Open Source sotto il proprio ombrello — da Jakarta a XML — formando un ecosistema di strumenti infrastrutturali per il web.
