contatore accessi

Apache HTTP Server, o più comunemente Apache (IPA pronuncia: /əˈpætʃi/), è il nome dato alla piattaforma server Web modulare più diffusa (ma anche al gruppo di lavoro open source che ha creato, sviluppato e aggiornato il software server), in grado di operare da sistemi operativi UNIX/Linux e Microsoft.

Apache è un software che realizza le funzioni di trasporto delle informazioni, di internetwork e di collegamento, ha il vantaggio di offrire anche funzioni di controllo per la sicurezza come quelli che compie il proxy.

Storia

Il progetto Apache nacque nel 1995. A quel tempo, il server Web più diffuso era il daemon HTTP pubblico sviluppato da Rob McCool al NCSA (National Center for Supercomputing Application), Università dell’Illinois.

Dal momento però che a partire dal 1994 lo sviluppo di questo server si era fermato (anche perché il suo autore aveva lasciato l’NCSA) un gruppo di webmaster aveva iniziato a sviluppare patch in maniera autonoma.

Fu creata una mailing list e verso la fine di febbraio del 1995 si costituì il primo gruppo di lavoro dell’Apache Group. Otto persone (Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson) presero come punto di partenza la versione 1.3 del demone HTTP NCSA e aggiunsero una serie di patch e di correzioni. La prima release pubblica di Apache, la 0.6.2, venne rilasciata nell’aprile del 1995.

Il nome Apache, secondo la leggenda, nasce dal fatto che inizialmente il server era semplicemente una raccolta di patch da applicare al server NCSA. Dal nome amichevole “a patchy server” sarebbe quindi nato Apache. In realtà, il nome fu scelto in onore della tribù di nativi americani Apache, come riportano le domande frequenti sul sito ufficiale del progetto. Una nuova architettura server fu integrata poco dopo nella versione 0.8.8 a cui fu dato il nome in codice di Shambala.

La versione 1.0 fu pubblicata il 1º dicembre 1995. Nel giro di un anno, la sua diffusione aveva già superato quella del server NCSA da cui era derivato. La versione 2.0 di Apache venne rilasciata durante la conferenza ApacheCon, tenutasi nel marzo 2000 a Orlando, in Florida.

Il grande successo di diffusione di questo software è l’indicatore più chiaro della qualità e dell’affidabilità di questo prodotto: secondo un’indagine Netcraft del 2005, su 75 milioni di siti web, circa 52 milioni utilizzavano Apache, ad ottobre 2006 il numero è salito a 60 milioni (69,32% del totale).

Operativamente, è composto da un demone, in ambiente UNIX, o da un servizio, in ambiente Microsoft, che sulla base delle impostazioni contenute nel file di configurazione httpd.conf permette l’accesso a uno o più siti, gestendo varie caratteristiche di sicurezza e potendo ospitare diverse estensioni per pagine attive (o dinamiche), come PHP o Jakarta/Tomcat.

Architettura apache

Il Web Server Apache presenta un’architettura modulare, quindi ad ogni richiesta del client vengono svolte funzioni specifiche da ogni modulo di cui è composto, come unità indipendenti. Ciascun modulo si occupa di una funzionalità, ed il controllo è gestito dal core.

In linea continua il flusso dei dati reale
Tratteggiato il flusso dei dati astratto che forma la pipeline

I moduli:

  • Core: programma principale composto da un ciclo sequenziale di chiamate ai moduli.
  • Translation: traduce la richiesta del client
  • Acces Control: controlla eventuali richieste dannose
  • MIME Type: verifica il tipo di contenuto
  • Response: invia la risposta al client e attiva eventuali procedure
  • Logging: tiene traccia di tutto ciò che è stato fatto

Il core suddivide la richiesta ai vari moduli in modo sequenziale, usando i parametri di uscita di un modulo come parametri di accesso per l’altro, creando così l’illusione di una comunicazione orizzontale fra i moduli (Pipeline software). Sopra il ciclo del core c’è un ulteriore ciclo di polling svolto da un demone che interroga continuamente le linee logiche da cui possono pervenire messaggi di richiesta.

Configurare apache

File httpd.conf

Gli amministratori del server possono usare il file httpd.conf, che è situato nella subdirectory conf della directory indicata durante la installazione. Questo file mette a disposizione tutta la libertà offerta dal server, quindi aggiungere moduli, estensioni, nuovi mime-type ed altro ancora. Per esempio se si volesse aggiungere un modulo bisognerebbe usare questa sintassi:

LoadModule nome_modulo percorso_del_file

File di configurazione .htaccess

Il file .htaccess permette una ulteriore personalizzazione del webserver a livello di directory. È utilizzato in particolar modo nell’hosting condiviso, per modificare le impostazioni standard fornite dal server stesso.