Apache Webserver

Transcript

Apache Webserver
Apache Webserver
Piccola introduzione all'installazione ed alla
configurazione, a cura di:
Alessandro Gervaso
Cos'è Apache?
Dal sito http://httpd.apache.org:
“The Apache HTTP Server Project is an effort to
develop and maintain an open-source HTTP
server for modern operating systems including
UNIX and Windows NT. The goal of this project
is to provide a secure, efficient and extensible
server that provides HTTP services in sync with
the current HTTP standards”
Cos'è un webserver?
E' un demone che resta in ascolto su una determinata porta
(default 80) per delle richieste HTTP e risponde di conseguenza.
80
Cli1
Server
Cli2
Apache oggi
Attualmente Apache detiene all'
incirca il 63% del
mercato dei webserver contro ad esempio il 27% di
Microsoft IIS ed appena l'1% di SunOne. Questo
grazie alla vincente licenza opensource unita alla sua
scalabilità ed alla struttura modulare che permette
virtualmente infinite espansioni (es: supporto nativo
per XML, compressione di file “on-demand”,
streaming multimediale).
Un po'di pratica... Installazione
Passiamo ora all'
installazione del webserver apache
in un sistema Linux. In questo primo esempio
utilizzerò i package di debian GNU/Linux.
Usare apt
Debian offre un potentissimo tool di gestione dei
package chiamato APT. Per installare apache è
sufficente digitare al prompt:
poker:~# apt-get install apache
Installazione da sorgenti
L'
installazione di apache dai sorgenti (reperibili su
http:/httpd.apache.org) è leggermente più complicata: dopo aver
scaricato la “tarball” è necessario decomprimerla e compilare il suo
contenuto.
tris:/tmp# tar xvzf apache_1.3.27
(scompatta ed estrae i file)
tris:/tmp# cd apache_1.3.27
tris:/tmp/apache_1.3.27# less README
(IMPORTANTE!!!)
tris:/tmp/apache_1.3.27# less INSTALL
(IMPORTANTE!!!)
tris:/tmp/apache_1.3.27# ./configure –help
tris:/tmp/apache_1.3.27# ./configure
(con opzioni personalizzate)
tris:/tmp/apache_1.3.27# make && make install
.htaccess e .htpasswd
Apache ci permette di utilizzare un sistema di
accesso ad alcune directory in maniera relativamente
semplice utilizzando i seguenti file:
1) .htaccess: questo file contiene le preferenze ed i
dettagli riguardo ai metodi di autenticazione e i
permessi per la directory.
2).htpasswd: questo file contiene una lista criptata
di combinazioni di username e password che viene
usata da Apache insieme al file .htaccess per
concedere o negare l'
accesso
.htaccess: un semplice esempio
AuthUserFile
/home/gervystar/public_html/private/.htpasswd
AuthGroupFile /dev/null
AuthName "Private Directory"
AuthType Basic
<Limit GET>
require valid-user
</Limit>
.htpasswd: come usarlo
L'
utilizzo di htpasswd è molto semplice: utilizzeremo solo
l'
opzione -c (create) necessaria a creare il file che conterrà le
coppie username:password.
Immaginiamo che la directory che vogliamo proteggere sia
“/home/gervystar/public_html/private”.
Il comando allora sarà:
htpasswd -c /home/gervystar/public_html/private username
dove username sarà un nome a nostra scelta. A questo punto il
programma ci chiederà di inserire una password ed il gioco è
fatto.
Virtual Host
Una della caratteristiche più interessanti offerte da
Apache è la possibilità di gestire più
domini/hostname sulla stessa macchina.
Ci sono due tipi di vhost: IP Based e Name Based
IP Based vhost
Per ogni IP Based vhost è richiesto al sistema un indirizzo ip: ad
esempio un server con 3 schede di rete che comunicano verso
l'
esterno, potrà hostare 3 vhost di questo tipo.
La configurazione all'
interno di httpd.conf è simile a questa:
<VirtualHost 192.168.0.1>
ServerAdmin [email protected]
ServerName www.foobar.foo
DocumentRoot /var/www/foobar.foo
CustomLog /var/log/apache/www.foobar.foo-access.log common
</VirtualHost>
Name Based vhost
La condizione “sine qua non” per il funzionamento dei Name Based vhost è il
supporto del protocollo HTTP/1.1 da parte del client. In questo modo possiamo
hostare diversi domini utilizzando solo un IP. Sta poi al server “capire” qual'
è il
dominio richiesto dal client.
La configurazione riportata è quella del mio serverino casalingo.
NameVirtualHost *
<VirtualHost *>
ServerAdmin [email protected]
ServerName www.gervystar.net
DocumentRoot /var/www/www.gervystar.net
CustomLog /var/log/apache/www.gervystar.net-access.log common
</VirtualHost>
<VirtualHost *>
ServerAdmin [email protected]
ServerName tris.gervystar.net
DocumentRoot /var/www/tris.gervystar.net
CustomLog /var/log/apache/tris.gervystar.net-access.log common
</VirtualHost>
Fonti
http://httpd.apache.org
http://www.diludovico.it/guide/proteggi.shtml
“ man apache”
“ man htpasswd”
Documentazione varia fornita con i package, di
solito reperibile in
“ /usr/share/doc/$nomepackage”

Documenti analoghi

Apache, PHP, MySQL, DRUPAL on Leopard (Mac Os X)

Apache, PHP, MySQL, DRUPAL on Leopard (Mac Os X) dell'utente, presenti in /Users/username/Sites/ e raggiungibili dall'indirizzo http://localhost/ ~username/ Qualcuno noterà, però, che mentre alla web root si accede tranquillamente, le pagine pers...

Dettagli

Lezione 6 corso linux 2004

Lezione 6 corso linux 2004 Nome Server: nome che verra’ visualizzato ai client come nome del server (es: www.pippo.com) Indirizzo email del webmaster: email che verra’ riportata agli utenti per segnalare errori/malfunzioname...

Dettagli

Server Apache

Server Apache  Ogni volta che all’interno dell’URL compare solo il nome di una directory, il server cerca se al suo interno esiste il file index_html, se lo trova restituisce al client tale file.  Esiste la po...

Dettagli

Indice 1 Introduzione al manuale 2 Apache e Tomcat

Indice 1 Introduzione al manuale 2 Apache e Tomcat E’ sufficiente lanciare l’eseguibile e seguire le indicazioni del setup, lasciando i default proposti ed avendo cura di installare Apache come servizio Windows in ascolto sulla porta standard

Dettagli