|
Dimensione: 15814
Commento: creata pagina portale server
|
Dimensione: 15248
Commento:
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 1: | Linea 1: |
| ## page was renamed from Server/WebServer | |
| Linea 6: | Linea 7: |
| = Guida alla configurazione di un server Web = == Prima di installare == |
= Introduzione == |
| Linea 12: | Linea 11: |
| Tenete conto che probabilmente vi servirà hardware dedicato , se possibile scegliete una soluzione appositamente | Tenete conto che probabilmente vi servirà hardware dedicato, se possibile scegliete una soluzione appositamente |
| Linea 17: | Linea 16: |
| Possibilmente dedicate una partizione apposita per /var/log ed una specifica per /var/www dove ospiterete i vostri siti : ciò dovrebbe minimizzare i tempi di I/O sia per la scrittura dei log files che per le operazioni di GET per la lettura dei files legata alle richieste dei clients. == Installazione == |
Possibilmente dedicate una partizione apposita per `/var/log` ed una specifica per `/var/www` dove ospiterete i vostri siti: ciò dovrebbe minimizzare i tempi di I/O sia per la scrittura dei log files che per le operazioni di GET per la lettura dei files legata alle richieste dei client. = Installazione = |
| Linea 23: | Linea 22: |
| sudo apt-get -y install apache2 }}} L'opzione '''-y''' di apt-get non chiede la conferma per le azioni legate al processo di installazione del software. Apt installerà pertanto apache2 risolvendo automaticamente le dipendenze necessarie ed avviando il server web nella configurazione di default. == Un'occhiata ai files e alle directories di configurazione == In apache2 le principali opzioni di configurazione sono racchiuse nel file '''apache2.conf''', mentre il file '''httpd.conf''' è vuoto (riservato alla personalizzazione della configurazione di apache2) e le porte su cui il server Web sarà in ascolto all'avvio del servizio sono elencate nel file '''ports.conf'''; questi files si trovano in '''/etc/apache2'''. La directory '''mods-available''' contiene tutti i moduli disponibili con apache2 (quelli installati di default) mentre la directory '''sites-available''' contiene le direttive di configurazione relative a tutti i siti che questo server Web ospita. I moduli effettivamente caricati all'avvio del servizio apache2 sono elencati nella directory '''mods-enabled''' , così come i siti effettivamente pubblicati e visibili agli utenti sono elencati nella directory '''sites-enabled'''. I files contenuti in queste 2 directories sono dei links a quelli contenuti nelle 2 directories '''mods-available''' e '''sites-available'''. |
sudo apt-get install apache2 }}} Apt installerà apache2 risolvendo automaticamente le dipendenze necessarie ed avviando il server web nella configurazione di default. = I file e le cartelle di configurazione = In apache2 le principali opzioni di configurazione sono racchiuse nel file `apache2.conf`, mentre il file `httpd.conf` è vuoto (riservato alla personalizzazione della configurazione di apache2) e le porte su cui il server Web sarà in ascolto all'avvio del servizio sono elencate nel file `ports.conf`; questi file si trovano in `/etc/apache2`. La directory `mods-available` contiene tutti i moduli disponibili con apache2 (quelli installati di default) mentre la directory `sites-available` contiene le direttive di configurazione relative a tutti i siti che questo server Web ospita. I moduli effettivamente caricati all'avvio del servizio apache2 sono elencati nella directory `mods-enabled`, così come i siti effettivamente pubblicati e visibili agli utenti sono elencati nella directory `sites-enabled`. I files contenuti in queste due directory sono dei link a quelli contenuti nelle due directory `mods-available` e `sites-available`. |
| Linea 45: | Linea 40: |
| dei links ai file corrispondenti in '''mods-available'''. | dei link ai file corrispondenti in `mods-available`. |
| Linea 49: | Linea 44: |
| Linea 53: | Linea 47: |
| La directory che contiene i file di log su tutti gli accessi è '''/var/log/apache2'''. La directory che contiene il sito predefinito e che dovrebbe contenere i vostri siti è '''/var/www'''. == Parametri di configurazione globali == |
La directory che contiene i file di log su tutti gli accessi è `/var/log/apache2`. La directory che contiene il sito predefinito e che dovrebbe contenere i vostri siti è `/var/www`. = Parametri di configurazione globali = |
| Linea 61: | Linea 53: |
| '''/etc/apache2'''. | `/etc/apache2`. |
| Linea 67: | Linea 59: |
| osserverete come output : {{{ | Osserverete come output : {{{ |
| Linea 73: | Linea 65: |
| === Opzioni globali === Il file '''/etc/apache2/apache2.conf''' contiene le principali opzioni di configurazione di apache2: {{{ |
== Opzioni globali == Il file `/etc/apache2/apache2.conf` contiene le principali opzioni di configurazione di apache2: {{{ |
| Linea 77: | Linea 69: |
| Linea 79: | Linea 70: |
| Linea 81: | Linea 71: |
| Linea 83: | Linea 72: |
| Linea 85: | Linea 73: |
| Linea 87: | Linea 74: |
| Linea 89: | Linea 75: |
| Linea 91: | Linea 76: |
| Linea 93: | Linea 77: |
| Linea 95: | Linea 78: |
| Linea 97: | Linea 79: |
| Linea 99: | Linea 80: |
| Linea 101: | Linea 81: |
| Linea 104: | Linea 83: |
| Linea 106: | Linea 84: |
| Linea 110: | Linea 87: |
| * '''Server``Root''' : directory base per configurazione , logs ed errori * '''Lock``File''' : il lock file sul file di log (da modificare solo se il log file di apache2 è montato via NFS) * '''Pid``File''' : il file che contiene il PID del processo padre apache2 * '''Time``Out''' : il tempo dopo il quale apache2 chiude una connessione client in stato idle * '''Keep``Alive On''' : sono permesse connessioni persistenti (ovvero in grado di servire più di una richiesta di uno stesso client) * '''Max``Keep``Alive``Requests''' : il massimo numero di richieste che in una singola connessione un client può fare al server (dopo tale numero le richieste verranno scartate) * '''Keep``Alive``Timeout''' : numero di secondi da attendere per effettuare un'altra richiesta da parte di uno stesso client su una stessa connessione persistente * '''Start``Servers''' : numero di processi server avviati * '''Min``Spare``Servers''' : numero minimo di processi liberi (ovvero avviati per supplire ad improvvisi picchi di carico) * '''Max``Spare``Servers''' : numero massimo di processi liberi (ovvero avviati per supplire ad improvvisi picchi di carico) * '''Max``Clients''' : massimo numero di processi apache2 che possono essere avviati * '''Max``Requests``Per``Child''' : numero massimo di richieste che il server è in grado di processare per ciascun thread * '''Include''' : sono le direttive di inclusione. Apache2 si serve di tali direttive per dichiarare indirizzo di binding,porta di ascolto ed altri parametri specifici della vostra configurazione in file distinti. Come vedete la direttiva '''Error``Log /var/log/apache2/error.log''' è relativa al path del log file,mentre la '''Include /etc/apache2/mods-enabled/*.load''' e quella successiva dicono di includere tutti i moduli elencati in '''mods-enabled'''. Le configurazioni particolari sono in '''/etc/apache2/httpd.conf''' e la porta di ascolto in '''ports.conf'''. Per modificare l'utente e il gruppo con cui apache2 è avviato dovete editare i parametri nel file '''/etc/apache2/apache2.conf''' |
* `Server``Root`: directory base per configurazione, logs ed errori * `Lock``File`: il lock file sul file di log (da modificare solo se il log file di apache2 è montato via NFS) * `Pid``File`: il file che contiene il PID del processo padre apache2 * `Time``Out`: il tempo dopo il quale apache2 chiude una connessione client in stato idle * `Keep``Alive On`: sono permesse connessioni persistenti (ovvero in grado di servire più di una richiesta di uno stesso client) * `Max``Keep``Alive``Requests`: il massimo numero di richieste che in una singola connessione un client può fare al server (dopo tale numero le richieste verranno scartate) * `Keep``Alive``Timeout`: numero di secondi da attendere per effettuare un'altra richiesta da parte di uno stesso client su una stessa connessione persistente * `Start``Servers`: numero di processi server avviati * `Min``Spare``Servers`: numero minimo di processi liberi (ovvero avviati per supplire ad improvvisi picchi di carico) * `Max``Spare``Servers`: numero massimo di processi liberi (ovvero avviati per supplire ad improvvisi picchi di carico) * `Max``Clients`: massimo numero di processi apache2 che possono essere avviati * `Max``Requests``Per``Child`: numero massimo di richieste che il server è in grado di processare per ciascun thread * `Include`: sono le direttive di inclusione. Apache2 si serve di tali direttive per dichiarare indirizzo di binding,porta di ascolto ed altri parametri specifici della vostra configurazione in file distinti. Come vedete la direttiva `Error``Log /var/log/apache2/error.log` è relativa al path del log file, mentre la `Include /etc/apache2/mods-enabled/*.load` e quella successiva dicono di includere tutti i moduli elencati in `mods-enabled`. Le configurazioni particolari sono in `/etc/apache2/httpd.conf` e la porta di ascolto in `ports.conf`. Per modificare l'utente e il gruppo con cui apache2 è avviato dovete editare i parametri nel file `/etc/apache2/apache2.conf`- |
| Linea 148: | Linea 113: |
| I parametri per la gestione dei carichi di lavoro sono : {{{ |
I parametri per la gestione dei carichi di lavoro sono: {{{ |
| Linea 167: | Linea 131: |
| Linea 171: | Linea 134: |
== Personalizzare il proprio sito == I parametri da specificare nel file '''/etc/apache2/sites-enabled/000-default''' sono : |
= Personalizzare il proprio sito = I parametri da specificare nel file `/etc/apache2/sites-enabled/000-default` sono: |
| Linea 178: | Linea 140: |
| Linea 180: | Linea 141: |
| Linea 182: | Linea 142: |
| Linea 186: | Linea 145: |
| * '''Document``Root''' : è la radice dell'albero dei documenti per questo sito * '''Alias''' e '''Script``Alias''' : sono degli alias names per le directory locali nelle quali si trovano icone e scripts Esempio : {{{ |
* `Document``Root`: è la radice dell'albero dei documenti per questo sito * `Alias` e `Script``Alias`: sono degli alias names per le directory locali nelle quali si trovano icone e scripts Esempio: {{{ |
| Linea 192: | Linea 150: |
| Linea 202: | Linea 159: |
| Linea 204: | Linea 160: |
| Linea 206: | Linea 161: |
| Linea 216: | Linea 170: |
| Linea 218: | Linea 171: |
| Linea 222: | Linea 174: |
| Le direttive per la gestione dinamica dell'albero dei documenti e la redirezione dei documenti {{{ |
Le direttive per la gestione dinamica dell'albero dei documenti e la redirezione dei documenti {{{ |
| Linea 225: | Linea 176: |
| Linea 260: | Linea 210: |
| Linea 262: | Linea 211: |
| Linea 268: | Linea 216: |
| Linea 270: | Linea 217: |
| Linea 272: | Linea 218: |
| Linea 274: | Linea 219: |
| Linea 280: | Linea 224: |
| Linea 282: | Linea 225: |
| Linea 284: | Linea 226: |
| Linea 286: | Linea 227: |
| Linea 288: | Linea 228: |
| Linea 292: | Linea 231: |
| * '''Exec``CGI''' : : esecuzione script CGI * '''Follow``Sym``Links''' : segue link simbolici * '''Multi``Views''' : seleziona documento che si avvicina di + alla richiesta del client quando il documento richiesto non esiste * '''Sym``Links``If``Owner``Match''' : Segue link se owner di src e dst coincidono === Direttive protezione sito web === |
* `Exec``CGI`:esecuzione script CGI * `Follow``Sym``Links`: segue link simbolici * `Multi``Views`: seleziona documento che si avvicina di + alla richiesta del client quando il documento richiesto non esiste * `Sym``Links``If``Owner``Match`: Segue link se owner di src e dst coincidono == Direttive protezione sito web == |
| Linea 308: | Linea 244: |
| ==== Autorizzazione basata sull'Host ==== | === Autorizzazione basata sull'Host === |
| Linea 318: | Linea 254: |
| ==== Autorizzazione basata sull'Utente ==== | === Autorizzazione basata sull'Utente === |
| Linea 355: | Linea 291: |
| === Hosting virtuale === | == Hosting virtuale == |
| Linea 368: | Linea 304: |
| Linea 370: | Linea 305: |
| Linea 373: | Linea 307: |
| Linea 377: | Linea 310: |
| Linea 379: | Linea 311: |
| Linea 381: | Linea 312: |
| Linea 384: | Linea 314: |
| ==== Host based VH ==== | === Host based VH === |
| Linea 408: | Linea 338: |
| ==== Name based VH ==== | === Name based VH === |
| Linea 440: | Linea 370: |
| ==== Esecuzione di N istanze su singolo host ==== | === Esecuzione di N istanze su singolo host === |
| Linea 444: | Linea 374: |
| * Aggiungere righe per start e stop httpd al file '''/etc/init.d/apache2''' * In '''/etc/init.d/apache2''' definire gli N diversi files di configurazione '''apache2[i].conf''' usati dalle N istanze dei web servers * Usare nei '''apache2[i].conf''' le diverse direttive specifiche come mostrato in precedenza |
* Aggiungere righe per start e stop httpd al file `/etc/init.d/apache2` * In `/etc/init.d/apache2` definire gli N diversi files di configurazione `apache2[i].conf` usati dalle N istanze dei web server * Usare nei `apache2[i].conf` le diverse direttive specifiche come mostrato in precedenza |
| Linea 452: | Linea 379: |
| Linea 454: | Linea 380: |
| Linea 456: | Linea 381: |
| Linea 460: | Linea 384: |
| == Configurazione di un server Web protetto con OpenSSL == | = Configurazione di un server Web protetto con OpenSSL = |
| Linea 467: | Linea 391: |
| Linea 470: | Linea 393: |
| Linea 473: | Linea 395: |
| Linea 475: | Linea 396: |
* Modificare '''/etc/apache2/sites-available/default''' aggiungendo le righe: {{{ |
* Modificare `/etc/apache2/sites-available/default` aggiungendo le righe: {{{ |
| Linea 496: | Linea 416: |
| == Supporto PHP == | = Supporto PHP = |
| Linea 504: | Linea 424: |
| == Controllo dei file di log == | = Controllo dei file di log = |
| Linea 515: | Linea 435: |
| CategoryServer CategoryNuoviDocumenti | CategoryServer CategoryDaRevisionare |
Indice:BRTableOfContents |
= Introduzione ==
Prima di cominciare vale la pena di spendere due parole sui requisiti di un server Web.
Tenete conto che probabilmente vi servirà hardware dedicato, se possibile scegliete una soluzione appositamente progettata per il servizio che dovrete ospitare.
Prendetevi il tempo necessario per pianificare un corretto partizionamento del disco.
Possibilmente dedicate una partizione apposita per /var/log ed una specifica per /var/www dove ospiterete i vostri siti: ciò dovrebbe minimizzare i tempi di I/O sia per la scrittura dei log files che per le operazioni di GET per la lettura dei files legata alle richieste dei client.
Installazione
Aprite una shell ed al prompt dei comandi digitate:
sudo apt-get install apache2
Apt installerà apache2 risolvendo automaticamente le dipendenze necessarie ed avviando il server web nella configurazione di default.
I file e le cartelle di configurazione
In apache2 le principali opzioni di configurazione sono racchiuse nel file apache2.conf, mentre il file httpd.conf è vuoto (riservato alla personalizzazione della configurazione di apache2) e le porte su cui il server Web sarà in ascolto all'avvio del servizio sono elencate nel file ports.conf; questi file si trovano in /etc/apache2. La directory mods-available contiene tutti i moduli disponibili con apache2 (quelli installati di default) mentre la directory sites-available contiene le direttive di configurazione relative a tutti i siti che questo server Web ospita. I moduli effettivamente caricati all'avvio del servizio apache2 sono elencati nella directory mods-enabled, così come i siti effettivamente pubblicati e visibili agli utenti sono elencati nella directory sites-enabled. I files contenuti in queste due directory sono dei link a quelli contenuti nelle due directory mods-available e sites-available. Questo vuol dire che se dovete supportare l'accesso in modo protetto al vostro sito (usando ssl) dovete creare dei link ai file corrispondenti in mods-available.
Per esempio per supportare ssl occorre immettere comandi:
ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
La directory che contiene i file di log su tutti gli accessi è /var/log/apache2. La directory che contiene il sito predefinito e che dovrebbe contenere i vostri siti è /var/www.
Parametri di configurazione globali
Per modificare l'installazione di default occorre dare un'occhiata alla directory di configurazione di apache2 , /etc/apache2.
Eseguire al prompt dei comandi:
cd /etc/apache2
Osserverete come output :
README envvars mods-available sites-available apache2.conf httpd.conf mods-enabled sites-enabled conf.d magic ports.conf ssl
Opzioni globali
Il file /etc/apache2/apache2.conf contiene le principali opzioni di configurazione di apache2:
ServerRoot "/etc/apache2" LockFile /var/lock/apache2/accept.lock PidFile /var/run/apache2.pid TimeOut 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 20 MaxRequestsPerChild 0 ErrorLog /var/log/apache2/error.log Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf Include /etc/apache2/httpd.conf Include /etc/apache2/ports.conf
ServerRoot: directory base per configurazione, logs ed errori
LockFile: il lock file sul file di log (da modificare solo se il log file di apache2 è montato via NFS)
PidFile: il file che contiene il PID del processo padre apache2
TimeOut: il tempo dopo il quale apache2 chiude una connessione client in stato idle
KeepAlive On: sono permesse connessioni persistenti (ovvero in grado di servire più di una richiesta di uno stesso client)
MaxKeepAliveRequests: il massimo numero di richieste che in una singola connessione un client può fare al server (dopo tale numero le richieste verranno scartate)
KeepAliveTimeout: numero di secondi da attendere per effettuare un'altra richiesta da parte di uno stesso client su una stessa connessione persistente
StartServers: numero di processi server avviati
MinSpareServers: numero minimo di processi liberi (ovvero avviati per supplire ad improvvisi picchi di carico)
MaxSpareServers: numero massimo di processi liberi (ovvero avviati per supplire ad improvvisi picchi di carico)
MaxClients: massimo numero di processi apache2 che possono essere avviati
MaxRequestsPerChild: numero massimo di richieste che il server è in grado di processare per ciascun thread
Include: sono le direttive di inclusione. Apache2 si serve di tali direttive per dichiarare indirizzo di binding,porta di ascolto ed altri parametri specifici della vostra configurazione in file distinti.
Come vedete la direttiva ErrorLog /var/log/apache2/error.log è relativa al path del log file, mentre la Include /etc/apache2/mods-enabled/*.load e quella successiva dicono di includere tutti i moduli elencati in mods-enabled. Le configurazioni particolari sono in /etc/apache2/httpd.conf e la porta di ascolto in ports.conf.
Per modificare l'utente e il gruppo con cui apache2 è avviato dovete editare i parametri nel file /etc/apache2/apache2.conf-
User www-data Group www-data
N.B. : apache2 non dovrebbe essere eseguito come root in quanto questo apre numerose falle di sicurezza...
I parametri per la gestione dei carichi di lavoro sono:
StartServers <n° processi figli Web Server all'avvio> MinSpareServers <n° minimo processi figli liberi avviati per supplire picchi di carico> MaxSpareServers <n° max processi figli liberi avviati per supplire picchi di carico>
N.B. : gli spare servers consentono al Web Server di rispondere + velocemente in caso di improvvisi picchi di richieste , ma occupano anche preziosa memoria dato che in casi di traffico normale non fanno nulla!
MaxClients <max n° client Web server è in grado di supportare simultaneamente>
I parametri per il nome del server sono :
ServerName <hostname (deve essere raggiungibile da URL> ServerAdmin <mail_web_administrator>
Personalizzare il proprio sito
I parametri da specificare nel file /etc/apache2/sites-enabled/000-default sono:
DocumentRoot /usr/local/apache/htdocs UserDir <public_html> Alias /icons/ /usr/local/apache/icons/ ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
DocumentRoot: è la radice dell'albero dei documenti per questo sito
Alias e ScriptAlias: sono degli alias names per le directory locali nelle quali si trovano icone e scripts
Esempio:
http://example.com/man.html viene tradotto in /usr/local/apache/htdocs/man.html http://example.com/cgi-bin/rpm-query viene tradotto in /usr/local/apache/cgi-bin/rpm-query
Alcune direttive di tipizzazione dei file:
Type/sub-type extension1 [extension2...]
Esempio :
Video/mpeg mpeg mpg mpe Video/quicktime qt mov Video/x-msvideo avi '''AddType''' newtype/newsub-type extension1..
Esempio:
AddType text/doc doc
Alcune direttive per la specifica del linguaggio:
AddEncoding x-gzip gz tgz AddFileType text/html html AddLanguage en .en
Le direttive per la gestione dinamica dell'albero dei documenti e la redirezione dei documenti
Redirect [temporary | permanent] /images http://example.com/icons RedirectMatch (.*)\.gif$ http://example.com$1.jpg
Il client che richiede GIF file viene rediretto verso JPEG files
Le direttive per l'indicizzazione delle directorie:
DirectoryIndex <index dir predefinito>
Esempio:
DirectoryIndex index.html
Se un client richiede [http://www.example.com/dir1] ottiene come pagina web index.html.
Le direttive per la generazione di indici dinamici di directory:
Option + Indexes
Le direttive per la gestione dell'elenco dei files contenuti in una directory:
IndexIgnore README* *.txt
Nasconde al client i files README* e tutti i file con estensione .txt.
Altre direttive:
IndexOptions , HeaderName
Scelta icone per rappresentazione file:
AddIcon <icon> <match1> [<match2> .] AddIconByType .. AddIconByEncoding .. DefaultIcon ..
Esempio scelta di icone:
AddIcon /icons/binary.gif .bin .exe AddIcon /icons/text.gif .txt AddIconByType /icons.apache/text.gif text/* AddAltByType TXT text/* DefaultIcon /icons/unknown.gif
Configurazione delle opzioni a livello di directory:
Options All (tutte le opzioni) ExecCGI FollowSymLinks MultiViews SymLinksIfOwnerMatch
ExecCGI:esecuzione script CGI
FollowSymLinks: segue link simbolici
MultiViews: seleziona documento che si avvicina di + alla richiesta del client quando il documento richiesto non esiste
SymLinksIfOwnerMatch: Segue link se owner di src e dst coincidono
Direttive protezione sito web
- Autorizzazione
- Controllo accesso
- Autorizzazione basata sull'host
- Autorizzazione basata sull'utente
- Autenticazione
Autorizzazione basata sull'Host
Le direttive da usare sono le seguenti:
Deny <hostname> | a.b.c.d/mask Allow <hostname> | a.b.c.d/mask Order allow,deny : Processa le regole nell'ordine indicato
Autorizzazione basata sull'Utente
Per configurare l'autenticazione a livello utente procedere come segue:
Creare file per utenti : /usr/local/apache/conf/htuser
Creare utenti in /usr/local/apache/conf/htuser con comando:
htpasswd -c htuser <nomeutente>
Creare gruppo htusers nel file /usr/local/apache/conf/htgroup
il formato del file è il seguente:
Groupname: user1 user2 user3 ..
Direttive per autorizzazione basata sull'utente da inserire nel file /etc/apache2/sites-enabled/000-default:
AuthUserFile conf/htuser AuthGroupFile conf/htgroup
Impostazioni controllo accesso:
Require user username1 username2 Require group groupname1 groupname2 Require valid-user
la prima direttiva consente l'accesso a username1 username2..
la seconda direttiva consente l'accesso a groupname1 groupname2..
la seconda direttiva consente l'accesso solo agli utenti definiti in htuser
Hosting virtuale
In generale una singola macchina ospita più di un sito web.
La gestione dei siti allora può essere fatti nei seguenti modi :
- N siti = N * M processi web server (se M è n° processi per singola istanza sito web,vuol dire che M processi gestiscono ciascun sito)
- Virtual host = N siti = M processi web server (sempre 1 singola istanza web,ovvero gli M processi gestiscono tutti gli N siti web)
È possibile identificare tre tipi di hosting virtuale :
- basato sull'IP (VH host based) : da eseguire quando avete più di indirizzo IP
- basato sul nome (VH name based) : da eseguire quando avete più nomi DNS (alias etc...)
- basato sulla porta (VH port based)
I metodi per la scelta delle tipologie di hosting sono :
- N interfacce di rete : VH host based
- Singola interfaccia di rete : name based VH
- N nomi per host : VH name based
- Necessità di separazione web servers per differenti policies protezione : Non scegliete il VH poichè dovete effettuare una separazione delle istanze del vostro web server
Host based VH
Utilizzare la direttiva <VirtualHost> da specificare all'interno di /etc/apache2/sites-enabled/000-default e all'interno delle opzioni di directory come nell'esempio riportato:
BindAddress 0.0.0.0 Port 80 DocumentRoot /usr/local/apache/htdocs ServerName site1.example.com <VirtualHost 192.168.1.2> DocumentRoot /usr/local/apache/htdocs2 ServerName site2.example.com ... </VirtualHost>
Qui il sito web di default serve site1.example.com , mentre l'IP 192.168.1.2 serve il sito site2.example.com.
Name based VH
Esempio:
Listen 192.168.1.232 NameVirtualHost 192.168.1.232 <VirtualHost 192.168.1.232> DocumentRoot /home/httpd/ex1 ServerName www1.example.com .. </VirtualHost> .. <VirtualHost 192.168.1.232> DocumentRoot /var/apache/htdocs2 ServerName www2.example.com .. </VirtualHost>
Qui come vedete si ha un unico IP ma due nomi server distinti (due nomi nel DNS,di cui uno sarà un alias name) che servono due siti distinti.
Esecuzione di N istanze su singolo host
Creare N files di configurazione per N istanze :
Aggiungere righe per start e stop httpd al file /etc/init.d/apache2
In /etc/init.d/apache2 definire gli N diversi files di configurazione apache2[i].conf usati dalle N istanze dei web server
Usare nei apache2[i].conf le diverse direttive specifiche come mostrato in precedenza
Specificare:
BindAddress Port Listen ErrorLog
Configurazione di un server Web protetto con OpenSSL
I comandi da specificare sono :
Comando da shell:
apache2-ssl-certificate -days 3650
sostituite 3650 con la durata del certificato in giorni.
Caricare modulo ssl in /etc/apache2/mods-enabled con comando:
ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
Specificare la direttiva Listen 443 nel file /etcapache2/ports.conf
Modificare /etc/apache2/sites-available/default aggiungendo le righe:
NameVirtualHost *:443 <VirtualHost *:443> #Inserire qui l'indirizzo email dell'amministratore del server ServerAdmin webmaster@localhost #Inserire qui la DocumentRoot del server virtuale #In questa cartella ci sono le pagine che viaggeranno sul canale criptato DocumentRoot /var/www SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem </VirtualHost>
Riavviare apache2 eseguendo da shell il comando /etc/init.d/apache2 restart
Supporto PHP
Caricare i moduli con i comandi da shell:
ln -s /etc/apache2/mods-available/php.conf /etc/apache2/mods-enabled/php.conf ln -s /etc/apache2/mods-available/php.load /etc/apache2/mods-enabled/php.load
Controllo dei file di log
Tutti i file di log si trovano nella directory /var/log/apache2 e sono:
- access.log
- error.log
Forniscono utili informazioni per il debugging dei problemi che si possono presentare.
