Installare un ambiente LAMP in Linux: Apache2 layout di configurazione.

Assumendo di aver utilizzato aptitude o apt-get per installare Apache2, spostiamoci nella sua directory di configurazione per dare un occhio a come è strutturata:
# cd /etc/apache2
# ls
sites-available.
Questa directory conterrà i file con le configurazioni di ogni sito (conosciuti come virtual hosts) che vorrete servire con Apache. Uno sguardo alla directory:
ls sites-available/
...
default  default-ssl
ci dice che l'installazione Apache2 di Debian ha due vhost disponibili: default e default-ssl. Notate che la presenza di un virtual host in questa directory non significa che questo sia attivo e visibile dagli utenti; significa solo che sarà disponibile se verrà abilitato.
Tutto questo ci porta a...
lamp1
sites-enabled.
Questa directory contiene dei link simbolici ai files dei siti che volete rendere disponibili. Per esempio, su un web server ci possono essere diversi siti pronti per essere pubblicati (configurati nella directory sites-available), ma solo quelli linkati simbolicamente in questa directory saranno realmente visibili dagli utenti. Diamo uno sguardo alla directory:
# ls -l sites-enabled
...
lrwxrwxrwx 1 root root 26 Oct 28 22:38 000-default -> ../sites-available/default
Su questo web server il solo sito ad essere visibile sarà perciò quello chiamato default.

mods-available.
Questa directory contiene i moduli di Apache2 pronti per essere resi disponibili.

mods-enabled.
Questa directory, come nel caso dei virtual host, contiene i link simbolici ai moduli effettivamente abilitati sul web server.

a2en e a2dis.
Essere buoni amministratori di sistema significa conoscere i comandi per renderci le cose più semplici.

a2dissite.
Questo comando cancella il link simbolico di un sito abilitato. Ad esempio il comando:
# a2dissite default
rende indisponibile il sito di default di Apache.

a2ensite.
Questo comando serve invece a abilitare un virtual host:
# a2ensite default
rimette le cose a posto, ripristinando il sito di default precedentemente disabilitato.

a2dismod.
Questo comando disabilita un modulo di Apache.

a2enmod.
Questo comando abilita un modulo di Apache.

Apache2: files di configurazione.

ports.conf
È il file che indica ad Apache su quali porte TCP/IP restare in ascolto:
NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # SSL name based virtual hosts are not yet supported, therefore no
    # NameVirtualHost statement here
    Listen 443
</IfModule>
La sintassi del file di default è molto semplice:
  • tutti i virtual host di Apache sono in ascolto sulla porta 80 (*:80)
  • il web server, se il modulo ssl è attivo, resta in ascolto di connessioni https sulla porta 443
Se volete aggiungere porte basterà inserire una riga del tipo:
Listen 8080
e riavviare Apache.

apache2.conf
È il file di configurazione principale di Apache su Debian. È estremamente ben commentato, ma può valer la pena lo stesso dare un'occhiata alle opzioni di configurazione principali.

Timeout
Default:

Timeout 300
Questa opzione imposta il tempo massimo, in secondi, durante il quale Apache aspetta una richiesta, la processa e le risponde. È impostato deliberatamente su un valore molto alto, ma è possibile ridurlo, portandolo a un sano 45 (o anche meno). Ridurre questo valore può anche aiutare a controbattere gli effetti di un attacco DOS.

KeepAlive
Default:

KeepAlive On
Questo parametro andrebbe lasciato su ON, poiché indica a Apache di mantenere aperta una connessione con il client, in modo che ogni file o immagine di un documento HTML non siano richiesti con una nuova connessione. Di seguito vedremo alcune impostazioni del parametro KeepAlive.

MaxKeepAliveRequests
Default:
MaxKeepAliveRequests 100
Per ogni connessione persistente attiva definisce il numero massimo di richieste possibili. Va tenuto alto per garantire efficienza. Se il vostro sito contiene parecchi javascript, immagini, etc, provate a aumentarlo a 200.

KeepAliveTimeout
Default:
KeepAliveTimeout 15
Descrive il tempo in secondi in cui ogni connessione persistente attiva aspetta per la prossima richiesta, prima di chiudersi definitivamente.

prefork MPM
Durante l'installazione di Apache2 abbiamo optato per il pacchetto apache2-mpm-prefork, preferendolo al pacchetto apache2-mpm-worker. Vi rimando alla documentazione ufficiale di Apache2 per le differenze.
Questo parametro definisce il comportamento di Apache2 MPM prefork.
Default:
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
  • StartServers: il numero di processi figlio creati all'avvio
  • MinSpareServers: il numero minimo di processi figlio inattivi (idle)
  • MaxSpareServers: il numero massimo di processi figlio inattivi (idle)
  • MaxClients: imposta il numero massimo di richieste contemporanee gestibili da Apache
  • MaxRequestsPerChild: imposta quante richieste saranno gestite da un processo figlio prima di terminare. Il valore 0 indica che il processo non termina mai. Modificare questo valore può aiutare la gestione della memoria RAM del server.
  • ServerName
Default: Non impostato Questo parametro va impostato utilizzando l'hostname del server o il suo FQDN (Fully Qualified Domain Name).

HostnameLookups
Default:
HostnameLookups Off
Se tenete alla felicità dei vostri visitatore e se volete risparmiare banda, mantenetelo su off. Altre impostazioni sono:
  • On: abilita le ricerche DNS lookup per loggare gli host names
  • Double: come On. In più controlla l'hostname.
ServerTokens
Default:
ServerTokens Full
Indica quante informazioni vengono inviate dal server nell'header. Può essere utile modificare il valore di default per una questione di sicurezza: meno informazioni forniamo sul nostro server, sulla versione di Apache e sui moduli installati, e meno facile sarà trovare un exploit per bucarci.
Le possibili opzioni sono:
  • Full
  • Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch Server at demo
  • OS
  • Apache/2.2.9 (Debian) Server
  • Minimal
  • Apache/2.2.9 Server
  • Minor
  • Apache/2.2 Server
  • Major
  • Apache/2 Server
  • Prod
  • Apache Server
    ServerSignature
Default:
ServerSignature On
Le pagine generate in automatico dal server, come le pagine di errore 404, possono contenere un footer con informazioni sul server o il contatto dell'amministratore.
I possibili valori sono:
  • Off: non viene aggiunto alcun footer
  • On: vengono aggiunte informazioni sul server al livello definito da ServerTokens
  • Email: viene aggiunto anche l'indirizzo email dell'amministratore
  • Per approfondimenti vedi anche:
Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
Backup di MySQL tramite script
Configurare MySQL per accettare connessioni remote
lamp2
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
reeder
Luca Soraci

Luca Soraci

Ubuntu giunge alle nostre orecchie solo perché è stato mutuato come nome per un sistema operativo di successo; lo abbiamo sentito nei discorsi di Mandela, del vescovo Tutu, ed è uno dei concetti fondanti di quel movimento di rinascimento che vuole far fiorire il continente africano al di sopra delle difficoltà attuali.

Nessun commento:

Posta un commento

Powered by Blogger.