Il progetto Apache è uno sforzo collaborativo di sviluppo software che aspira a creare una implementazione robusta, di livello commerciale, completa e con il codice sorgente liberamente disponibile, di un server (Web) HTTP. Il progetto è gestito congiuntamente da un gruppo di volontari in giro per il mondo, che usano Internet e il Web per trasmettere, pianificare e sviluppare il server e la documentazione relativa. Questi volontari sono conosciuti come Gruppo Apache. In aggiunta, centinaia di utenti hanno contribuito al progetto con idee, codice e documentazione. Questo file è volto a descrivere brevemente la storia del Gruppo Apache e riconoscerne i vari collaboratori. | ||
--www.apache.org |
È semplicemente il miglior software per Server Web, molto flessibile da configurare per sopperire alle proprie necessità, ed è E-S-T-R-E-M-A-M-E-N-T-E stabile. Personalmente non ho mai avuto esperienze di crash in un ambiente di produzione (=materiale non sperimentale)
Sito di origine http://www.apache.org/dist/httpd/
cd /usr/local/ tar -xvzf apache_1.3.27.tar.gz |
Se il proprio server web deve rispondere a molte richieste contemporaneamente e la macchina è sufficientemente robusta per fare questo, si può modificare il limite massimo di processi in esecuzione
Si faccia il download della patch da: http://www.delouw.ch/linux/apache-patch_HARD_SERVER_LIMIT.txt
--- httpd.h Thu Mar 21 18:07:34 2002 +++ httpd.h-new Sun Apr 7 13:34:11 2002 @@ -320,7 +320,7 @@ #elif defined(NETWARE) #define HARD_SERVER_LIMIT 2048 #else -#define HARD_SERVER_LIMIT 256 +#define HARD_SERVER_LIMIT 512 #endif #endif |
Questa patch aumenta il numero massimo di client concorrenti a 512. Ci si senta liberi di aumentarlo ulteriormente, se si è riusciti a modificare il proprio kernel ed il file /etc/security/limits.conf
Evitare di esaurire i task | |
---|---|
Con le impostazioni sbagliate ciò potrebbe portare ad un »self-denial-of-service-attack«. Ci si assicuri di aver lasciato sufficienti processi per root |
Si applichi la patch con:
cd /usr/local/apache_1.3.27/src/include patch -p0 < apache-patch_HARD_SERVER_LIMIT.txt |
Questo modulo fornisce la crittografia forte per il server web Apache 1.3 tramite i Secure Socket Layer (SSL v2/v3) e i protocolli Transport Layer Security (TLS v1) con l'aiuto dell'insieme di strumenti Open Source SSL/TLS OpenSSL, il quale si basa su SSLeay di Eric A. Young e Tim J. Hudson. | ||
--www.modssl.org |
Questo modulo è necessario per abilitare Apache per le richieste SSL (https). Applica una patch al codice sorgente ed estende le sue API (Application Programming Interface). Il risultato viene chiamato EAPI (Extended Application Programming Interface).
Uso delle opzioni del compilatore durante la compilazione dei moduli | |
---|---|
Ci si assicuri che ogni modulo per il proprio server Apache sia compilato con l'opzione -DEAPI, altrimenti il Server web potrebbe bloccarsi o non avviarsi affatto. |
Quasi tutti i moduli che conosco aggiungono l'opzione -DEAPI da soli, eccettuati mod_jserv e mod_jk
Sito di origine:http://www.modssl.org
cd /usr/local/ tar -xvzf mod_ssl-2.8.12-1.3.27.tar.gz cd mod_ssl-2.8.12-1.3.27/ ./configure --with-apache=../apache_1.3.27 |
Con mod_perl è possibile scrivere moduli Apache interamente in Perl. In aggiunta, l'interprete persistente, incorporato nel server, evita il sovraccarico di lanciare un interprete esterno e la penalizzazione del tempo di avvio del Perl. | ||
--perl.apache.org |
mod_perl è una alternativa ai cgi-bin. I cgi tipicamente generano un nuovo processo per ogni richiesta e producono sovraccarico. Con mod_perl, l'interprete perl viene caricato in modo persistente nel server Apache e non ha bisogno di generare i processi per ogni richiesta.
Sito di origine: http://www.apache.org/dist/perl
cd /usr/local tar -xvzf mod_perl-1.27.tar.gz cd mod_perl-1.27 perl Makefile.PL \ EVERYTHING=1 \ APACHE_SRC=../apache_1.3.27/src \ USE_APACI=1 \ PREP_HTTPD=1 \ DO_HTTPD=1 make make install |
Mod_perl non può essere compilato come DSO | |
---|---|
Non si compili mod_perl come DSO (Dynamic Shared Object)! Secondo varie fonti, Apache potrebbe bloccarsi (non ho mai provato). |
Ora che i due moduli statici mod_ssl e mod_perl sono configurati ed ai sorgenti di Apache è stata applicata la patch, possiamo procedere con la compilazione di Apache.
EAPI_MM="/usr/local/mm-1.2.2" SSL_BASE="/usr/local/ssl" \ ./configure \ --enable-module=unique_id \ --enable-module=rewrite \ --enable-module=speling \ --enable-module=expires \ --enable-module=info \ --enable-module=log_agent \ --enable-module=log_referer \ --enable-module=usertrack \ --enable-module=proxy \ --enable-module=userdir \ --enable-module=so \ --enable-shared=ssl \ --enable-module=ssl \ --activate-module=src/modules/perl/libperl.a \ --enable-module=perl make make install |
cd /usr/local/ssl/bin ./openssl req -new > new.cert.csr ./openssl rsa -in privkey.pem -out new.cert.key ./openssl x509 -in new.cert.csr -out new.cert.cert \ -req -signkey new.cert.key -days 999 cp new.cert.key /usr/local/apache/conf/ssl.key/server.key cp new.cert.cert /usr/local/apache/conf/ssl.crt/server.crt |
Nome comune | |
---|---|
OpenSSL chiede diverse cose. Un errore comune è quello di inserire un "nome comune" sbagliato. Questo deve essere lo FQHN (Fully Qualified HostName) del proprio Server, ad es. www.foo.org |