SlideShare a Scribd company logo
1 of 45
Download to read offline
Argomenti 
•Apache httpd 
•Directory importanti 
•File di configurazione 
•Permessi d’accesso 
•Virtual Host 
•Moduli ed estensioni 
•SSL e https 
•PHP 
Percorso 7 
Apache HTTP 
2
httpd.apache.org 
Percorso 7 
Apache HTTP 
3
Diffusione dei web server 
Percorso 7 
Apache HTTP 
4
Il lavoro del server http 
•Rimani in attesa (LISTEN) di una richiesta http 
•Analizza la richiesta 
–Estrae cookie e parametri 
–[statica] Restituisce il file 
–[dinamica] Attiva l’application server 
•Compone la risposta 
•Invia la risposta 
•Chiude la connessione e dimentica tutto 
Percorso 7 
Apache HTTP 
5
Orientarsi in Apache 
•DocumentRoot 
•Moduli 
•Configurazione 
•Logs 
•Avvio processo 
•Posizione dei file 
Percorso 7 
Apache HTTP 
6 
sudo apt-get install apache2
DocumentRoot, URL, File 
•DocumentRoot : 
–la cartella nella quale sono salvati i file statici distribuiti via http, o gli script dinamici attivati via http 
–Corrisponde alla “radice del sito web”: / 
•Esempio: http://my.example.com/info/contact.html viene mappato su {WebRoot}/info/contact.html 
–URL Mapping 
–URL Rewriting 
Percorso 7 
Apache HTTP 
7
Moduli 
•La funzionalità http “base” è insita nel server (core) 
•Molte funzionalità aggiuntive sono disponibili sotto forma di “moduli” (~100) che possono essere installati, configurati e attivati 
•Ogni modulo si inserisce nella catena di elaborazione della richiesta 
•Attivi su specifici tipi di file, o cartelle, o richieste, o fasi della risposta (hook) 
•Esistono moduli di terze parti (es. mod_php). 
Percorso 7 
Apache HTTP 
8
Moduli installati 
Percorso 7 
Apache HTTP 
9
Configurazione 
•/etc/apache2/apache2.conf 
–File da esso inclusi 
•Il file è diviso in sezioni <sezione> … </sezione> 
•Ogni sezione contiene una serie di direttive Parametro = Valore 
•Direttive interpretate sia dal server http, sia dai moduli di estensione caricati 
Percorso 7 
Apache HTTP 
10
Log 
•/var/log/apache2/ 
•Access log 
•Error log 
•Rotazione dei log 
Percorso 7 
Apache HTTP 
11
Gestione dei processi httpd 
$ sudo /etc/init.d/apache2 start 
$ sudo /etc/init.d/apache2 stop 
$ sudo /etc/init.d/apache2 restart 
$ sudo /etc/init.d/apache2 reload 
$ /etc/init.d/apache2 status 
$ sudo service apache2 start 
$ sudo service apache2 stop 
$ sudo service apache2 restart 
$ sudo service apache2 reload 
$ service apache2 status 
Percorso 7 
Apache HTTP 
12
Posizione dei file 
Variabile 
Posizione 
ServerRoot 
/etc/apache2 
Configurazione 
/etc/apache2 
Log 
/var/log/apache2 
Sito principale 
sites-enabled/000-default.conf 
DocumentRoot 
/var/www/html 
Moduli 
/usr/lib/apache2/modules 
Variabili d’ambiente 
/etc/apache2/envvars 
PID file 
/var/run/apache2/apache2.pid 
Percorso 7 
Apache HTTP 
13
Posizione dei file 
Variabile 
Posizione 
ServerRoot 
/etc/apache2 
Configurazione 
/etc/apache2 
Log 
/var/log/apache2 
Sito principale 
sites-enabled/000-default.conf 
DocumentRoot 
/var/www/html 
Moduli 
/usr/lib/apache2/modules 
Variabili d’ambiente 
/etc/apache2/envvars 
PID file 
/var/run/apache2/apache2.pid 
Percorso 7 
Apache HTTP 
14
Percorso 7 
Apache HTTP 
15 
https://help.ubuntu.com/14.04/serverguide/httpd.html
Attivazione/disattivazione funzionalità 
•Ubuntu ha previsto diverse configurazioni 
–enabled: attualmente attive 
–Available: pronte per essere attivate (e configurate) 
•Scripts: a2{en|dis}{mod|conf|site} 
Percorso 7 
Apache HTTP 
16
Creare pagine HTML 
•Aggiungere file in DocumentRoot 
–/var/www/html 
•Il processo “apache2” gira come utente “www- data” 
–File HTML leggibili da questo utente 
Percorso 7 
Apache HTTP 
17
Esercizio 
•Aprire (e leggere) la pagina web di default installata da Ubuntu 
•Creare un file prova.html nella DocumentRoot con del contenuto HTML qualsiasi 
•Aprire via browser il file prova.html 
•Verificare access log ed error log 
Percorso 7 
Apache HTTP 
18
Sintassi apache2.conf 
•Il file di default contiene molti commenti esplicativi 
•L’ordine delle direttive non è significativo 
•Una direttiva per riga ( “” finale unisce righe successive) 
•Direttive case-insensitive, molti argomenti case- sensitive 
•Commenti: “#” 
Percorso 7 
Apache HTTP 
19
Direttive principali (1) 
•ServerRoot 
–Directory principale per l’installazione 
–Molti path sono definiti come path relativi alla ServerRoot 
•DocumentRoot 
–Directory di default corrispondente alla radice / del sito 
Percorso 7 
Apache HTTP 
20
Direttive principali (2) 
•Listen 
–Specifica su quali interfacce, indirizzi IP e porte il server rimane in ascolto 
–Se specifico solo la porta, ascolta su tutti gli indirizzi IP della macchina 
•PidFile 
–File contenente il PID del processo apache principale 
–I diversi thread del server sono processi figli di questo PID 
Percorso 7 
Apache HTTP 
21
Direttive principali (3) 
•DirectoryIndex 
–Nome del file da servire se la URI richiesta corrisponde al dome di una directory 
–Solitamente: index.html 
•ErrorDocument 
–Specifica la pagina HTML generata quando si verifica un errore a livello HTTP 
–Può essere un file di testo, un redirect locale o un redirect esterno 
Percorso 7 
Apache HTTP 
22
Direttive principali (4) 
•Alias 
–Associa una URI (o un prefisso di URI) ad una certa directory fisica 
–Alias /icons/ /usr/local/apache/icons/ 
•Redirect 
–Segnala al browser che una determinata URI è stata spostata (su questo o su un altro server) (HTTP 301) 
–Redirect /service http://foo2.example.com/service 
Percorso 7 
Apache HTTP 
23
Direttive principali (5) 
•Order/Allow/Deny 
–Specificano i permessi e le restrizioni di accesso 
–Order: Deny, Allow oppure Order: Allow, Deny 
–Deny ed Allow specificano dei filtri di indirizzi IP, netmask 
•Deny from all 
•Allow from 192.168.54.* 
Percorso 7 
Apache HTTP 
24
Direttive principali (5) 
•Order/Allow/Deny 
–Specificano i permessi e le restrizioni di accesso 
–Order: Deny, Allow oppure Order: Allow, Deny 
–Deny ed Allow specificano dei filtri di indirizzi IP, netmask 
•Deny from all 
•Allow from 192.168.54.* 
Percorso 7 
Apache HTTP 
25
Direttive principali (6) 
•Options – Configura le funzioni aggiuntive disponibili nelle directory 
–Indexes – Se manca DirectoryIndex, genera automaticamente l’elenco dei file presenti 
•AddIcon – Specifica immagini delle icone per i vari tipi di file 
–Multiviews – Attiva la negoziazione della lingua 
–ExecCGI – Permette l’esecuzione di script CGI 
–Includes – Attiva l’elaborazione di Server-Side includes o parsed HTML 
Percorso 7 
Apache HTTP 
26
Sezione <Directory> 
•Specifica una serie di direttive che si applicano solamente ad un sotto-insieme dell’albero dei file 
•Specifica il full path (fisico) a cui si applica 
Percorso 7 
Apache HTTP 
27
Sezione <Files> 
•Applica un insieme di directory a tutti i file il cui nome corrisponde 
Percorso 7 
Apache HTTP 
28
Sezione <Location> 
•Applica le direttive quando la URI Richiesta (e non il path fisico) corrisponde 
Percorso 7 
Apache HTTP 
29
Il file.htaccess 
•Oltre alle specifiche date nelle sezioni <Directory>, ogni directory può avere un file chiamato .htaccess 
•Il .htaccess può contenere direttive aggiuntive, che si sovrappongono a quelle dichiarate nei file .conf 
•Rallenta il server (deve essere letto per ogni richiesta) 
Percorso 7 
Apache HTTP 
30
Esercizio 
•Creare un mini-sito 
–File HTML accessibili sotto la URL /sito (path fisico /var/www/sito) 
–File immagini accessibili sotto la URL /imgsito (path fisico /var/www/immagini) 
Percorso 7 
Apache HTTP 
31
Virtual Hosts 
•Più siti web, indipendenti, gestiti sullo stesso server 
•Ogni virtual host ha una configurazione del tutto indipendente 
–ServerName, DocumentRoot, Aliases, log files, etc. 
–http://httpd.apache.org/docs/current/vhosts/ 
Percorso 7 
Apache HTTP 
32
Virtual Hosts 
•Apache supporta due tipi di virtual host 
–Name-based virtual host 
•Seleziona la configurazione virtuale sulla base del nome DNS utilizzato dal client 
•Permette molti virtual host sullo stesso IP address 
•Necessario agire sul DNS 
–IP-based virtual host 
•Seleziona la configurazione virtuale sulla base dell’IP address richiesto 
•Necessario che il server abbia più indirizzi IP, uno per ciascun sito 
Percorso 7 
Apache HTTP 
33
Name-Based Virtual Host 
•ServerName seleziona quale virtual host attivare 
•ServerAlias può specificare nomi aggiuntivi 
•DocumentRoot diversa 
Percorso 7 
Apache HTTP 
34
IP-Based Virtual Host 
•Indirizzo IP diverso per I diversi host 
•Direttive diverse per ciascun sito 
•Saranno necessari comandi Listen per ciascun IP 
Percorso 7 
Apache HTTP 
35
Virtual Host su Ubuntu 
•Prendere ad esempio il sito 000-default.conf 
•Creare un nuovo file .conf per il nostro sito, nella directory -available 
•Attivare il sito (a2ensite) 
Percorso 7 
Apache HTTP 
36
Esercizio 
•Creare due virtual host IP-based 
–Indirizzo IP della rete Host Only 
–Porte di rete diverse (es. 80 ed 81) 
–Definire DocumentRoot distinte e verificare che funzioni 
•Ripetere l’esercizio con virtual host name-based 
–Occorrerà modificare il file di hosts della macchina client e della macchina server 
Percorso 7 
Apache HTTP 
37
HTTPS e siti web sicuri 
•La connessione HTTP è in chiaro 
•E’ possibile cifrare con SSL la connessione utilizzando il protocollo HTTPS (porta 443) 
•Gestito dal modulo mod_ssl (nel package apache2-common) 
•Necessario un «certificato server» 
Percorso 7 
Apache HTTP 
38
Attivazione https 
•Attivare il modulo mod_ssl 
–sudo a2enmod ssl 
•Verificare il sito di prova descritto in /etc/apache2/sites-available/default-ssl.conf 
•Attivare il sito https di prova 
–sudo a2ensite default-ssl 
•sudo service apache2 restart 
Percorso 7 
Apache HTTP 
39
Certificati? 
•Il sito default-ssl.conf lavora con certificati self-signed 
•Necessario sostituirli con certificati firmati da un’autorità riconosciuta 
Percorso 7 
Apache HTTP 
40
Direttive per https 
•SSLEngine on 
•SSLCertificateFile 
–Certificato in formato PEM 
–Può contenere la catena di certificazione 
•SSLCertificateKeyFile 
–Contiene la chiave privata del certificato 
–Se la chiave privata è crittografata, sarà necessario inserire la passphrase all’avvio di apache 
Percorso 7 
Apache HTTP 
41
Esempio minimo 
Percorso 7 
Apache HTTP 
42
Esercizio 
•Attivare il server HTTPS di default 
•Attivare il server HTTPS per almeno uno dei virtual host configurati prima. 
Percorso 7 
Apache HTTP 
43
Riferimenti 
•http://httpd.apache.org/ 
•https://help.ubuntu.com/14.04/serverguide/httpd.html 
Percorso 7 
Apache HTTP 
44
These slides are licensed under a Creative Commons 
Attribution Non Commercial Share Alike 4.0 International 
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ 
Versione in Italiano: 
https://creativecommons.org/licenses/by-nc-sa/4.0/deed.it

More Related Content

What's hot

Installare i server via rete con Cobbler
Installare i server via rete con CobblerInstallare i server via rete con Cobbler
Installare i server via rete con CobblerBabel
 
Laboratorio Di Basi Di Dati 08 Il Web Server Apache
Laboratorio Di  Basi Di  Dati 08  Il  Web Server  ApacheLaboratorio Di  Basi Di  Dati 08  Il  Web Server  Apache
Laboratorio Di Basi Di Dati 08 Il Web Server Apacheguestbe916c
 
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
Laboratorio Di  Basi Di  Dati 10  P H P    Cookie E SessioniLaboratorio Di  Basi Di  Dati 10  P H P    Cookie E Sessioni
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioniguestbe916c
 
Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Joaquim Hangalo
 
Seminario team working - 21-1-2015
Seminario team working - 21-1-2015Seminario team working - 21-1-2015
Seminario team working - 21-1-2015Alessandro Loffredo
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneFulvio Corno
 
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H Pguestbe916c
 
Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso
Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’usoWorkshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso
Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’usoTruelite
 
Presentazione django reminiscence
Presentazione django reminiscencePresentazione django reminiscence
Presentazione django reminiscenceAndrea Gottardi
 
Io uso Tor e non lascio tracce! Sei proprio sicuro?
Io uso Tor e non lascio tracce! Sei proprio sicuro?Io uso Tor e non lascio tracce! Sei proprio sicuro?
Io uso Tor e non lascio tracce! Sei proprio sicuro?festival ICT 2016
 
Linux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaLinux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaAlessandro Selli
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazioneEnrico Pirozzi
 
Introduzione architettura FUSS
Introduzione architettura FUSSIntroduzione architettura FUSS
Introduzione architettura FUSSTruelite
 

What's hot (14)

Installare i server via rete con Cobbler
Installare i server via rete con CobblerInstallare i server via rete con Cobbler
Installare i server via rete con Cobbler
 
Laboratorio Di Basi Di Dati 08 Il Web Server Apache
Laboratorio Di  Basi Di  Dati 08  Il  Web Server  ApacheLaboratorio Di  Basi Di  Dati 08  Il  Web Server  Apache
Laboratorio Di Basi Di Dati 08 Il Web Server Apache
 
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
Laboratorio Di  Basi Di  Dati 10  P H P    Cookie E SessioniLaboratorio Di  Basi Di  Dati 10  P H P    Cookie E Sessioni
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
 
Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014
 
Idp, passo dopo passo!
Idp, passo dopo passo!Idp, passo dopo passo!
Idp, passo dopo passo!
 
Seminario team working - 21-1-2015
Seminario team working - 21-1-2015Seminario team working - 21-1-2015
Seminario team working - 21-1-2015
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazione
 
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
 
Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso
Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’usoWorkshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso
Workshop – Il server FUSS: struttura, filosofia progettuale e casi d’uso
 
Presentazione django reminiscence
Presentazione django reminiscencePresentazione django reminiscence
Presentazione django reminiscence
 
Io uso Tor e non lascio tracce! Sei proprio sicuro?
Io uso Tor e non lascio tracce! Sei proprio sicuro?Io uso Tor e non lascio tracce! Sei proprio sicuro?
Io uso Tor e non lascio tracce! Sei proprio sicuro?
 
Linux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compattaLinux Capabilities - ita - v2.1.5 - compatta
Linux Capabilities - ita - v2.1.5 - compatta
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazione
 
Introduzione architettura FUSS
Introduzione architettura FUSSIntroduzione architettura FUSS
Introduzione architettura FUSS
 

Viewers also liked

Formal Verification of Device State Chart Models
Formal Verification of Device State Chart ModelsFormal Verification of Device State Chart Models
Formal Verification of Device State Chart ModelsFulvio Corno
 
Rudimenti di programmazione grafica in C con la libreria grafica WinBGIm
Rudimenti di programmazione grafica in C con la libreria grafica WinBGIm Rudimenti di programmazione grafica in C con la libreria grafica WinBGIm
Rudimenti di programmazione grafica in C con la libreria grafica WinBGIm Fulvio Corno
 
DOG: an Ontology-Powered OSGi Domotic Gateway
DOG: an Ontology-Powered OSGi Domotic GatewayDOG: an Ontology-Powered OSGi Domotic Gateway
DOG: an Ontology-Powered OSGi Domotic GatewayFulvio Corno
 
Database access and JDBC
Database access and JDBCDatabase access and JDBC
Database access and JDBCFulvio Corno
 
FaSet: A Set Theory Model for Faceted Search
FaSet: A Set Theory Model for Faceted SearchFaSet: A Set Theory Model for Faceted Search
FaSet: A Set Theory Model for Faceted SearchFulvio Corno
 
Rule-based reasoning in the Semantic Web
Rule-based reasoning in the Semantic WebRule-based reasoning in the Semantic Web
Rule-based reasoning in the Semantic WebFulvio Corno
 
Presentazione del corso di Mater in e-Learning per la Pubblica Amministrazione
 Presentazione del corso di Mater in e-Learning per la Pubblica Amministrazione Presentazione del corso di Mater in e-Learning per la Pubblica Amministrazione
Presentazione del corso di Mater in e-Learning per la Pubblica AmministrazioneFulvio Corno
 
Ontology languages and OWL
Ontology languages and OWLOntology languages and OWL
Ontology languages and OWLFulvio Corno
 
SPARQL and the Open Linked Data initiative
SPARQL and the Open Linked Data initiativeSPARQL and the Open Linked Data initiative
SPARQL and the Open Linked Data initiativeFulvio Corno
 
Comunicazione aumentativa alternativa - cenni (corso di Tecnologie per la Dis...
Comunicazione aumentativa alternativa - cenni (corso di Tecnologie per la Dis...Comunicazione aumentativa alternativa - cenni (corso di Tecnologie per la Dis...
Comunicazione aumentativa alternativa - cenni (corso di Tecnologie per la Dis...Fulvio Corno
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Fulvio Corno
 
Smart Buildings: dal campo al modello, andata e ritorno
Smart Buildings: dal campo al modello, andata e ritornoSmart Buildings: dal campo al modello, andata e ritorno
Smart Buildings: dal campo al modello, andata e ritornoFulvio Corno
 
Ontologies: introduction, design, languages and tools
Ontologies: introduction, design, languages and toolsOntologies: introduction, design, languages and tools
Ontologies: introduction, design, languages and toolsFulvio Corno
 
JavaFX fundamentals
JavaFX fundamentalsJavaFX fundamentals
JavaFX fundamentalsFulvio Corno
 
Lists (Java Collections)
Lists (Java Collections)Lists (Java Collections)
Lists (Java Collections)Fulvio Corno
 

Viewers also liked (18)

Formal Verification of Device State Chart Models
Formal Verification of Device State Chart ModelsFormal Verification of Device State Chart Models
Formal Verification of Device State Chart Models
 
Rudimenti di programmazione grafica in C con la libreria grafica WinBGIm
Rudimenti di programmazione grafica in C con la libreria grafica WinBGIm Rudimenti di programmazione grafica in C con la libreria grafica WinBGIm
Rudimenti di programmazione grafica in C con la libreria grafica WinBGIm
 
DOG: an Ontology-Powered OSGi Domotic Gateway
DOG: an Ontology-Powered OSGi Domotic GatewayDOG: an Ontology-Powered OSGi Domotic Gateway
DOG: an Ontology-Powered OSGi Domotic Gateway
 
Database access and JDBC
Database access and JDBCDatabase access and JDBC
Database access and JDBC
 
Recursion in Java
Recursion in JavaRecursion in Java
Recursion in Java
 
FaSet: A Set Theory Model for Faceted Search
FaSet: A Set Theory Model for Faceted SearchFaSet: A Set Theory Model for Faceted Search
FaSet: A Set Theory Model for Faceted Search
 
Rule-based reasoning in the Semantic Web
Rule-based reasoning in the Semantic WebRule-based reasoning in the Semantic Web
Rule-based reasoning in the Semantic Web
 
Presentazione del corso di Mater in e-Learning per la Pubblica Amministrazione
 Presentazione del corso di Mater in e-Learning per la Pubblica Amministrazione Presentazione del corso di Mater in e-Learning per la Pubblica Amministrazione
Presentazione del corso di Mater in e-Learning per la Pubblica Amministrazione
 
Ontology languages and OWL
Ontology languages and OWLOntology languages and OWL
Ontology languages and OWL
 
Jdbc[1]
Jdbc[1]Jdbc[1]
Jdbc[1]
 
SPARQL and the Open Linked Data initiative
SPARQL and the Open Linked Data initiativeSPARQL and the Open Linked Data initiative
SPARQL and the Open Linked Data initiative
 
Comunicazione aumentativa alternativa - cenni (corso di Tecnologie per la Dis...
Comunicazione aumentativa alternativa - cenni (corso di Tecnologie per la Dis...Comunicazione aumentativa alternativa - cenni (corso di Tecnologie per la Dis...
Comunicazione aumentativa alternativa - cenni (corso di Tecnologie per la Dis...
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...
 
Smart Buildings: dal campo al modello, andata e ritorno
Smart Buildings: dal campo al modello, andata e ritornoSmart Buildings: dal campo al modello, andata e ritorno
Smart Buildings: dal campo al modello, andata e ritorno
 
Ontologies: introduction, design, languages and tools
Ontologies: introduction, design, languages and toolsOntologies: introduction, design, languages and tools
Ontologies: introduction, design, languages and tools
 
JavaFX fundamentals
JavaFX fundamentalsJavaFX fundamentals
JavaFX fundamentals
 
Web Architectures
Web ArchitecturesWeb Architectures
Web Architectures
 
Lists (Java Collections)
Lists (Java Collections)Lists (Java Collections)
Lists (Java Collections)
 

Similar to Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https

Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileI.S.I.S. "Antonio Serra" - Napoli
 
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Alessandro del Gobbo
 
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...Fulvio Corno
 
Come funziona la navigazione Web
Come funziona la navigazione WebCome funziona la navigazione Web
Come funziona la navigazione Webextrategy
 
Italian deft 7 manual 90
Italian deft 7 manual 90Italian deft 7 manual 90
Italian deft 7 manual 90mstrom62
 
Php concetti chiave di base
Php concetti chiave di basePhp concetti chiave di base
Php concetti chiave di baseWalter Liguori
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleMarco Breveglieri
 
Creare API pubbliche, come evitare gli errori comuni
 Creare API pubbliche, come evitare gli errori comuni Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuniAndrea Dottor
 
Introduzione a Drupal e componenti del core - SIDCamp 2015
Introduzione a Drupal e componenti del core - SIDCamp 2015Introduzione a Drupal e componenti del core - SIDCamp 2015
Introduzione a Drupal e componenti del core - SIDCamp 2015Kelyon Srl
 
Realizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e sambaRealizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e sambaAndrea Mauro
 
Laboratorio Di Basi Di Dati 01 Introduzione
Laboratorio Di  Basi Di  Dati 01 IntroduzioneLaboratorio Di  Basi Di  Dati 01 Introduzione
Laboratorio Di Basi Di Dati 01 Introduzioneguestbe916c
 
Laboratorio Di Basi Di Dati 05 Architettura Del Web
Laboratorio Di  Basi Di  Dati 05  Architettura Del  WebLaboratorio Di  Basi Di  Dati 05  Architettura Del  Web
Laboratorio Di Basi Di Dati 05 Architettura Del Webguestbe916c
 
Introduzione a Internet
Introduzione a InternetIntroduzione a Internet
Introduzione a Internetdadahtml
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]santi caltabiano
 
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDayHosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDayAruba S.p.A.
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioMongoDB
 
Fr01 asp.net web api reloaded
Fr01   asp.net web api reloadedFr01   asp.net web api reloaded
Fr01 asp.net web api reloadedDotNetCampus
 

Similar to Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https (20)

Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
 
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013
 
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
Condivisione di dischi - NFS - Reti miste Windows/Linux - SMB e NetBIOS - Sam...
 
Come funziona la navigazione Web
Come funziona la navigazione WebCome funziona la navigazione Web
Come funziona la navigazione Web
 
Net core base
Net core baseNet core base
Net core base
 
Italian deft 7 manual 90
Italian deft 7 manual 90Italian deft 7 manual 90
Italian deft 7 manual 90
 
Php concetti chiave di base
Php concetti chiave di basePhp concetti chiave di base
Php concetti chiave di base
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarle
 
Creare API pubbliche, come evitare gli errori comuni
 Creare API pubbliche, come evitare gli errori comuni Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuni
 
Introduzione a Drupal e componenti del core - SIDCamp 2015
Introduzione a Drupal e componenti del core - SIDCamp 2015Introduzione a Drupal e componenti del core - SIDCamp 2015
Introduzione a Drupal e componenti del core - SIDCamp 2015
 
Introduzione a WordPress
Introduzione a WordPressIntroduzione a WordPress
Introduzione a WordPress
 
Realizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e sambaRealizzare una rete aziendale con linux e samba
Realizzare una rete aziendale con linux e samba
 
Laboratorio Di Basi Di Dati 01 Introduzione
Laboratorio Di  Basi Di  Dati 01 IntroduzioneLaboratorio Di  Basi Di  Dati 01 Introduzione
Laboratorio Di Basi Di Dati 01 Introduzione
 
Laboratorio Di Basi Di Dati 05 Architettura Del Web
Laboratorio Di  Basi Di  Dati 05  Architettura Del  WebLaboratorio Di  Basi Di  Dati 05  Architettura Del  Web
Laboratorio Di Basi Di Dati 05 Architettura Del Web
 
Introduzione a Internet
Introduzione a InternetIntroduzione a Internet
Introduzione a Internet
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]
 
Asp net (versione 1 e 2)
Asp net (versione 1 e 2)Asp net (versione 1 e 2)
Asp net (versione 1 e 2)
 
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDayHosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay
Hosting e file HTACCESS, come funziona e come si modifica - #TipOfTheDay
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizio
 
Fr01 asp.net web api reloaded
Fr01   asp.net web api reloadedFr01   asp.net web api reloaded
Fr01 asp.net web api reloaded
 

Recently uploaded

ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxlorenzodemidio01
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................giorgiadeascaniis59
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024IISGiovanniVallePado
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxteccarellilorenzo
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxteccarellilorenzo
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...Nguyen Thanh Tu Collection
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxlorenzodemidio01
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................giorgiadeascaniis59
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxteccarellilorenzo
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxtecongo2007
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxlorenzodemidio01
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....giorgiadeascaniis59
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereMarco Chizzali
 
TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfteccarellilorenzo
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.camillaorlando17
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxtecongo2007
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticanico07fusco
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxsasaselvatico
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxtecongo2007
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileNicola Rabbi
 

Recently uploaded (20)

ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptx
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docx
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptx
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opere
 
TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdf
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informatica
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptx
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 

Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https

  • 1.
  • 2. Argomenti •Apache httpd •Directory importanti •File di configurazione •Permessi d’accesso •Virtual Host •Moduli ed estensioni •SSL e https •PHP Percorso 7 Apache HTTP 2
  • 4. Diffusione dei web server Percorso 7 Apache HTTP 4
  • 5. Il lavoro del server http •Rimani in attesa (LISTEN) di una richiesta http •Analizza la richiesta –Estrae cookie e parametri –[statica] Restituisce il file –[dinamica] Attiva l’application server •Compone la risposta •Invia la risposta •Chiude la connessione e dimentica tutto Percorso 7 Apache HTTP 5
  • 6. Orientarsi in Apache •DocumentRoot •Moduli •Configurazione •Logs •Avvio processo •Posizione dei file Percorso 7 Apache HTTP 6 sudo apt-get install apache2
  • 7. DocumentRoot, URL, File •DocumentRoot : –la cartella nella quale sono salvati i file statici distribuiti via http, o gli script dinamici attivati via http –Corrisponde alla “radice del sito web”: / •Esempio: http://my.example.com/info/contact.html viene mappato su {WebRoot}/info/contact.html –URL Mapping –URL Rewriting Percorso 7 Apache HTTP 7
  • 8. Moduli •La funzionalità http “base” è insita nel server (core) •Molte funzionalità aggiuntive sono disponibili sotto forma di “moduli” (~100) che possono essere installati, configurati e attivati •Ogni modulo si inserisce nella catena di elaborazione della richiesta •Attivi su specifici tipi di file, o cartelle, o richieste, o fasi della risposta (hook) •Esistono moduli di terze parti (es. mod_php). Percorso 7 Apache HTTP 8
  • 9. Moduli installati Percorso 7 Apache HTTP 9
  • 10. Configurazione •/etc/apache2/apache2.conf –File da esso inclusi •Il file è diviso in sezioni <sezione> … </sezione> •Ogni sezione contiene una serie di direttive Parametro = Valore •Direttive interpretate sia dal server http, sia dai moduli di estensione caricati Percorso 7 Apache HTTP 10
  • 11. Log •/var/log/apache2/ •Access log •Error log •Rotazione dei log Percorso 7 Apache HTTP 11
  • 12. Gestione dei processi httpd $ sudo /etc/init.d/apache2 start $ sudo /etc/init.d/apache2 stop $ sudo /etc/init.d/apache2 restart $ sudo /etc/init.d/apache2 reload $ /etc/init.d/apache2 status $ sudo service apache2 start $ sudo service apache2 stop $ sudo service apache2 restart $ sudo service apache2 reload $ service apache2 status Percorso 7 Apache HTTP 12
  • 13. Posizione dei file Variabile Posizione ServerRoot /etc/apache2 Configurazione /etc/apache2 Log /var/log/apache2 Sito principale sites-enabled/000-default.conf DocumentRoot /var/www/html Moduli /usr/lib/apache2/modules Variabili d’ambiente /etc/apache2/envvars PID file /var/run/apache2/apache2.pid Percorso 7 Apache HTTP 13
  • 14. Posizione dei file Variabile Posizione ServerRoot /etc/apache2 Configurazione /etc/apache2 Log /var/log/apache2 Sito principale sites-enabled/000-default.conf DocumentRoot /var/www/html Moduli /usr/lib/apache2/modules Variabili d’ambiente /etc/apache2/envvars PID file /var/run/apache2/apache2.pid Percorso 7 Apache HTTP 14
  • 15. Percorso 7 Apache HTTP 15 https://help.ubuntu.com/14.04/serverguide/httpd.html
  • 16. Attivazione/disattivazione funzionalità •Ubuntu ha previsto diverse configurazioni –enabled: attualmente attive –Available: pronte per essere attivate (e configurate) •Scripts: a2{en|dis}{mod|conf|site} Percorso 7 Apache HTTP 16
  • 17. Creare pagine HTML •Aggiungere file in DocumentRoot –/var/www/html •Il processo “apache2” gira come utente “www- data” –File HTML leggibili da questo utente Percorso 7 Apache HTTP 17
  • 18. Esercizio •Aprire (e leggere) la pagina web di default installata da Ubuntu •Creare un file prova.html nella DocumentRoot con del contenuto HTML qualsiasi •Aprire via browser il file prova.html •Verificare access log ed error log Percorso 7 Apache HTTP 18
  • 19. Sintassi apache2.conf •Il file di default contiene molti commenti esplicativi •L’ordine delle direttive non è significativo •Una direttiva per riga ( “” finale unisce righe successive) •Direttive case-insensitive, molti argomenti case- sensitive •Commenti: “#” Percorso 7 Apache HTTP 19
  • 20. Direttive principali (1) •ServerRoot –Directory principale per l’installazione –Molti path sono definiti come path relativi alla ServerRoot •DocumentRoot –Directory di default corrispondente alla radice / del sito Percorso 7 Apache HTTP 20
  • 21. Direttive principali (2) •Listen –Specifica su quali interfacce, indirizzi IP e porte il server rimane in ascolto –Se specifico solo la porta, ascolta su tutti gli indirizzi IP della macchina •PidFile –File contenente il PID del processo apache principale –I diversi thread del server sono processi figli di questo PID Percorso 7 Apache HTTP 21
  • 22. Direttive principali (3) •DirectoryIndex –Nome del file da servire se la URI richiesta corrisponde al dome di una directory –Solitamente: index.html •ErrorDocument –Specifica la pagina HTML generata quando si verifica un errore a livello HTTP –Può essere un file di testo, un redirect locale o un redirect esterno Percorso 7 Apache HTTP 22
  • 23. Direttive principali (4) •Alias –Associa una URI (o un prefisso di URI) ad una certa directory fisica –Alias /icons/ /usr/local/apache/icons/ •Redirect –Segnala al browser che una determinata URI è stata spostata (su questo o su un altro server) (HTTP 301) –Redirect /service http://foo2.example.com/service Percorso 7 Apache HTTP 23
  • 24. Direttive principali (5) •Order/Allow/Deny –Specificano i permessi e le restrizioni di accesso –Order: Deny, Allow oppure Order: Allow, Deny –Deny ed Allow specificano dei filtri di indirizzi IP, netmask •Deny from all •Allow from 192.168.54.* Percorso 7 Apache HTTP 24
  • 25. Direttive principali (5) •Order/Allow/Deny –Specificano i permessi e le restrizioni di accesso –Order: Deny, Allow oppure Order: Allow, Deny –Deny ed Allow specificano dei filtri di indirizzi IP, netmask •Deny from all •Allow from 192.168.54.* Percorso 7 Apache HTTP 25
  • 26. Direttive principali (6) •Options – Configura le funzioni aggiuntive disponibili nelle directory –Indexes – Se manca DirectoryIndex, genera automaticamente l’elenco dei file presenti •AddIcon – Specifica immagini delle icone per i vari tipi di file –Multiviews – Attiva la negoziazione della lingua –ExecCGI – Permette l’esecuzione di script CGI –Includes – Attiva l’elaborazione di Server-Side includes o parsed HTML Percorso 7 Apache HTTP 26
  • 27. Sezione <Directory> •Specifica una serie di direttive che si applicano solamente ad un sotto-insieme dell’albero dei file •Specifica il full path (fisico) a cui si applica Percorso 7 Apache HTTP 27
  • 28. Sezione <Files> •Applica un insieme di directory a tutti i file il cui nome corrisponde Percorso 7 Apache HTTP 28
  • 29. Sezione <Location> •Applica le direttive quando la URI Richiesta (e non il path fisico) corrisponde Percorso 7 Apache HTTP 29
  • 30. Il file.htaccess •Oltre alle specifiche date nelle sezioni <Directory>, ogni directory può avere un file chiamato .htaccess •Il .htaccess può contenere direttive aggiuntive, che si sovrappongono a quelle dichiarate nei file .conf •Rallenta il server (deve essere letto per ogni richiesta) Percorso 7 Apache HTTP 30
  • 31. Esercizio •Creare un mini-sito –File HTML accessibili sotto la URL /sito (path fisico /var/www/sito) –File immagini accessibili sotto la URL /imgsito (path fisico /var/www/immagini) Percorso 7 Apache HTTP 31
  • 32. Virtual Hosts •Più siti web, indipendenti, gestiti sullo stesso server •Ogni virtual host ha una configurazione del tutto indipendente –ServerName, DocumentRoot, Aliases, log files, etc. –http://httpd.apache.org/docs/current/vhosts/ Percorso 7 Apache HTTP 32
  • 33. Virtual Hosts •Apache supporta due tipi di virtual host –Name-based virtual host •Seleziona la configurazione virtuale sulla base del nome DNS utilizzato dal client •Permette molti virtual host sullo stesso IP address •Necessario agire sul DNS –IP-based virtual host •Seleziona la configurazione virtuale sulla base dell’IP address richiesto •Necessario che il server abbia più indirizzi IP, uno per ciascun sito Percorso 7 Apache HTTP 33
  • 34. Name-Based Virtual Host •ServerName seleziona quale virtual host attivare •ServerAlias può specificare nomi aggiuntivi •DocumentRoot diversa Percorso 7 Apache HTTP 34
  • 35. IP-Based Virtual Host •Indirizzo IP diverso per I diversi host •Direttive diverse per ciascun sito •Saranno necessari comandi Listen per ciascun IP Percorso 7 Apache HTTP 35
  • 36. Virtual Host su Ubuntu •Prendere ad esempio il sito 000-default.conf •Creare un nuovo file .conf per il nostro sito, nella directory -available •Attivare il sito (a2ensite) Percorso 7 Apache HTTP 36
  • 37. Esercizio •Creare due virtual host IP-based –Indirizzo IP della rete Host Only –Porte di rete diverse (es. 80 ed 81) –Definire DocumentRoot distinte e verificare che funzioni •Ripetere l’esercizio con virtual host name-based –Occorrerà modificare il file di hosts della macchina client e della macchina server Percorso 7 Apache HTTP 37
  • 38. HTTPS e siti web sicuri •La connessione HTTP è in chiaro •E’ possibile cifrare con SSL la connessione utilizzando il protocollo HTTPS (porta 443) •Gestito dal modulo mod_ssl (nel package apache2-common) •Necessario un «certificato server» Percorso 7 Apache HTTP 38
  • 39. Attivazione https •Attivare il modulo mod_ssl –sudo a2enmod ssl •Verificare il sito di prova descritto in /etc/apache2/sites-available/default-ssl.conf •Attivare il sito https di prova –sudo a2ensite default-ssl •sudo service apache2 restart Percorso 7 Apache HTTP 39
  • 40. Certificati? •Il sito default-ssl.conf lavora con certificati self-signed •Necessario sostituirli con certificati firmati da un’autorità riconosciuta Percorso 7 Apache HTTP 40
  • 41. Direttive per https •SSLEngine on •SSLCertificateFile –Certificato in formato PEM –Può contenere la catena di certificazione •SSLCertificateKeyFile –Contiene la chiave privata del certificato –Se la chiave privata è crittografata, sarà necessario inserire la passphrase all’avvio di apache Percorso 7 Apache HTTP 41
  • 42. Esempio minimo Percorso 7 Apache HTTP 42
  • 43. Esercizio •Attivare il server HTTPS di default •Attivare il server HTTPS per almeno uno dei virtual host configurati prima. Percorso 7 Apache HTTP 43
  • 45. These slides are licensed under a Creative Commons Attribution Non Commercial Share Alike 4.0 International To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ Versione in Italiano: https://creativecommons.org/licenses/by-nc-sa/4.0/deed.it