Ottimizzare la banda di Apache: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
(16 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili|Squeeze|Wheezy|Jessie|Stretch}}
 
__TOC__
__TOC__
== Il modulo mod_deflate ==
== Il modulo mod_deflate ==
Nell'installazione Apache di default di Debian è presente l'utile modulo [http://httpd.apache.org/docs/2.2/fr/mod/mod_deflate.html ''mod_deflate'']: attivando questo modulo sara’ possibile comprimere i dati trasferiti dal vostro sito al browser web del visitatore, velocizzando cosi’ l’apertura delle pagine web ed utilizzando minor banda di connessione.
Nell'installazione Apache di default di Debian è presente l'utile modulo [http://httpd.apache.org/docs/2.2/fr/mod/mod_deflate.html ''mod_deflate'']: attivando questo modulo sarà possibile comprimere i dati trasferiti dal vostro sito al browser web del visitatore, velocizzando così l’apertura delle pagine web ed utilizzando minor banda di connessione.


=== Installazione ===
=== Installazione ===
E' possibile abilitare ''mod_deflate'' con questo comando:
È possibile abilitare ''mod_deflate'' con questo comando:
<pre>
<pre>
# a2enmod deflate
# a2enmod deflate
Riga 11: Riga 13:


=== Configurazione ===
=== Configurazione ===
{{Warningbox|'''Debian Stretch''' contiene già di default le configurazioni seguenti, per cui '''NON''' occorre applicare quanto descritto in questo paragrafo.}}
====Fino a Debian Jessie====
Per ottimizzarne la configurazione, creiamo un file ''.conf'' apposito:
Per ottimizzarne la configurazione, creiamo un file ''.conf'' apposito:
<pre>
<pre>
Riga 20: Riga 26:
#############################
#############################
<IfModule mod_deflate.c>
<IfModule mod_deflate.c>
# Definisco il livello di compresssione
# Definisco il livello di compressione
# Valori da 1 (min) a 9 (max)
# Valori da 1 (min) a 9 (max)
  DeflateCompressionLevel 3
  DeflateCompressionLevel 3
Riga 68: Riga 74:
</Location>
</Location>
</pre>
</pre>
Ora è sufficiente riavviare apache:
Ora è sufficiente riavviare Apache:
<pre>
<pre>
# /etc/init.d/apache2 restart
# /etc/init.d/apache2 restart
Riga 80: Riga 86:
da cui possiamo vedere che il visitatore ha richiesto il file ''info.php'' e che Apache lo ha inviato con una compressione del 16%.
da cui possiamo vedere che il visitatore ha richiesto il file ''info.php'' e che Apache lo ha inviato con una compressione del 16%.
<br/>
<br/>
Poichè questo file di log tenderà a diventare enorme, il mio consiglio è di tenere attiva la registrazione dei log per il solo periodo necessario al debug del modulo. Una volta verificato il corretto funzionamento di Apache sarà possibile disabilitare la registrazione dei log semplicemente commentando le righe relative nel file di configurazione di ''mod_deflate''.
Poiché questo file di log tenderà a diventare enorme, il mio consiglio è di tenere attiva la registrazione dei log per il solo periodo necessario al debug del modulo. Una volta verificato il corretto funzionamento di Apache sarà possibile disabilitare la registrazione dei log semplicemente commentando le righe relative nel file di configurazione di ''mod_deflate''.
 
== Il modulo mod_expires ==
== Il modulo mod_expires ==
Ora che i browser dei nostri utenti scaricano utilizzando la compressione da noi impostata, possiamo anche fare in modo che non richiedano al nostro server dei files inutili che già hanno nella loro cache locale.<br/>
Ora che i browser dei nostri utenti scaricano utilizzando la compressione da noi impostata, possiamo anche fare in modo che non richiedano al nostro server dei files inutili che già hanno nella loro cache locale.<br/>
Riga 88: Riga 95:
Module expires already enabled
Module expires already enabled
</pre>
</pre>
{{Warningbox|'''Debian Stretch''' contiene già di default le configurazioni seguenti, per cui '''NON''' occorre applicare quanto descritto in questo paragrafo.}}
====Fino a Debian Jessie====
Noi ci limiteremo quindi a ottimizzarne la configurazione, agendo sul file:
Noi ci limiteremo quindi a ottimizzarne la configurazione, agendo sul file:
<pre>
<pre>
Riga 109: Riga 120:
</pre>
</pre>
e il gioco è fatto.
e il gioco è fatto.
== Il modulo mod_status ==
 
''mod_status'' è un utile modulo che fornisce informazioni sullo stato, sulle performance e sulle attività di un server Apache. Il modulo è già installato di default in Debian e occorre perciò solo abilitarlo.
== I moduli mod_status e mod_info ==
<br/>
''mod_status'' è un utile modulo che fornisce informazioni sullo stato, sulle performances e sulle attività di un server Apache. Il modulo è già installato di default in Debian e occorre perciò solo abilitarlo.
Creiamo un file di configurazione per il modulo:
<pre>
# a2enmod status
# a2enmod info
</pre>
Creiamo un file di configurazione per il modulo mod_status:
<pre>
# nano /etc/apache2/conf.d/mod_status.conf
</pre>
oppure da '''Debian Stretch''':
<pre>
<pre>
# nano /etc/apache2/conf.d/mod_status.conf:
# nano /etc/apache2/mods-available/status.conf
</pre>
</pre>
contenente:
contenente:
Riga 120: Riga 139:
<Location /server-status>
<Location /server-status>
     SetHandler server-status
     SetHandler server-status
     Order deny,allow
     # Fino a Debian Jessie
     Deny from all
    #Order deny,allow
     Allow from 192.168.0.0/24
     #Deny from all
     #Allow from 192.168.0.0/24
    # Da Debian Stretch
    Require ip 192.168.0.0/24
</Location>
</Location>
</pre>
Dove ovviamente al posto della classe 192.168.0.0/24 dovremo indicare la classe di indirizzi della nostra LAN.
<br/>
Creiamo un file di configurazione per il modulo mod_info:
<pre>
# nano /etc/apache2/conf.d/mod_info.conf
</pre>
oppure da '''Debian Stretch''':
<pre>
# nano /etc/apache2/mods-available/info.conf
</pre>
contenente:
<pre>
<Location /server-info>
    SetHandler server-info
    # Fino a Debian Jessie
    #Order deny,allow
    #Deny from all
    #Allow from 192.168.0.0/24
    # Da Debian Stretch
    Require ip 192.168.0.0/24</Location>
</pre>
Dove ovviamente al posto della classe 192.168.0.0/24 dovremo indicare la classe di indirizzi della nostra LAN.
Dove ovviamente al posto della classe 192.168.0.0/24 dovremo indicare la classe di indirizzi della nostra LAN.
<br/>
<br/>
Riga 131: Riga 175:
</pre>
</pre>
e verifichiamo che il modulo sia in funzione, collegandoci all'indirizzo:
e verifichiamo che il modulo sia in funzione, collegandoci all'indirizzo:
# http://localhost/server-status
* http://localhost/server-status
oppure
oppure
# http://your_ip/server-status
* http://indirizzo.ip.del.server/server-status
<br/>
 
<br/>
== Strumenti per il monitoraggio del traffico di rete ==
--[[Utente:Ferdybassi|Ferdybassi]] 12:20, 6 mar 2011 (CET)
=== iftop ===
''iftop'' è uno strumento da linea di comando che produce una lista in real-time delle connessioni di rete attive. Di default le connessioni sono presentate in ordine di consumo di banda. Per installare il tool è sufficiente:
<pre>
# apt-get install iftop
</pre>
Per avviare il programma è sufficiente invocarlo, specificando come parametro l'interfaccia di rete che si vuole monitorare:
<pre>
# iftop -i eth0 -B
</pre>
Alcune altre utili opzioni:
<pre>
  -h                  display this message
  -n                  don't do hostname lookups
  -N                  don't convert port numbers to services
  -p                  run in promiscuous mode (show traffic between other
                      hosts on the same network segment)
  -b                  don't display a bar graph of traffic
  -B                  Display bandwidth in bytes
  -i interface        listen on named interface
  -f filter code      use filter code to select packets to count
                      (default: none, but only IP packets are counted)
  -F net/mask        show traffic flows in/out of network
  -P                  show ports as well as hosts
  -m limit            sets the upper limit for the bandwidth scale
  -c config file      specifies an alternative configuration file
</pre>
=== Apachetop ===
È uno strumento che mostra informazioni come le richieste per secondo, i bytes per secondo e gli URL più richiesti. Per installarlo:
<pre>
# apt-get install apachetop
</pre>
Per avviarlo basta il comando:
<pre>
# apachetop
</pre>
=== slurm ===
Slurm è un monitor del carico di rete; può mostrare in realtime le statistiche sul traffico, può monitorare ogni interfaccia di rete e utilizza una gradevole ascii-art per mostrare i propri grafici. Per installarlo:
<pre>
# apt-get install slurm
</pre>
Per utilizzarlo:
<pre>
# slurm [-hHz] [-csl] [-d delay] [-t theme] -i interface
</pre>
Ad esempio:
<pre>
# slurm -i eth0
</pre>
=== Darkstat ===
Darkstat è un semplice strumento di monitoraggio della banda basato su un'interfaccia web. Per installarlo:
<pre>
# apt-get install darkstat
</pre>
Per visualizzare le statistiche e i grafici è sufficiente collegarsi all'indirizzo:
<pre>
http://indirizzo.ip.del.server:667
</pre>
 
{{Autori
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 12:20, 6 mar 2011 (CET)
}}
 
[[Categoria: Web server]]
[[Categoria: Web server]]

Versione attuale delle 19:33, 9 ott 2017

Debian-swirl.png Versioni Compatibili

Debian 6 "squeeze"
Debian 7 "wheezy"
Debian 8 "jessie"
Debian 9 "stretch"

Il modulo mod_deflate

Nell'installazione Apache di default di Debian è presente l'utile modulo mod_deflate: attivando questo modulo sarà possibile comprimere i dati trasferiti dal vostro sito al browser web del visitatore, velocizzando così l’apertura delle pagine web ed utilizzando minor banda di connessione.

Installazione

È possibile abilitare mod_deflate con questo comando:

# a2enmod deflate

Configurazione

Warning.png ATTENZIONE
Debian Stretch contiene già di default le configurazioni seguenti, per cui NON occorre applicare quanto descritto in questo paragrafo.


Fino a Debian Jessie

Per ottimizzarne la configurazione, creiamo un file .conf apposito:

# nano /etc/apache2/conf.d/mod_deflate

avente come contenuto:

# Configurazione Mod Deflate
#############################
<IfModule mod_deflate.c>
# Definisco il livello di compressione
# Valori da 1 (min) a 9 (max)
 DeflateCompressionLevel 3
</IfModule>
<Location />
# Definisco quali pagine vanno compresse
 AddOutputFilterByType DEFLATE text/plain
 AddOutputFilterByType DEFLATE text/xml
 AddOutputFilterByType DEFLATE text/html
 AddOutputFilterByType DEFLATE text/css
 AddOutputFilterByType DEFLATE image/svg+xml
 AddOutputFilterByType DEFLATE application/xhtml+xml
 AddOutputFilterByType DEFLATE application/xml
 AddOutputFilterByType DEFLATE application/rss+xml
 AddOutputFilterByType DEFLATE application/atom_xml
 AddOutputFilterByType DEFLATE application/x-javascript
 AddOutputFilterByType DEFLATE application/x-httpd-php
 AddOutputFilterByType DEFLATE application/x-httpd-fastphp
 AddOutputFilterByType DEFLATE application/x-httpd-eruby
# Attivo la compressione 
 SetOutputFilter DEFLATE
# Non comprimo il file che hanno una loro compressione
# di default
 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary
# Impedisco errori di compressione nelle vecchie
# versioni dei browser
 BrowserMatch ^Mozilla/4 gzip-only-text/html
 BrowserMatch ^Mozilla/4\.0[678] no-gzip
 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Make sure proxies don't deliver the wrong content
 Header append Vary User-Agent env=!dont-vary
# Attivo i log per controllare il corretto
# funzionamento del modulo
 DeflateFilterNote Input input_info
 DeflateFilterNote Output output_info
 DeflateFilterNote Ratio ratio_info
 LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
 CustomLog /var/log/apache2/deflate_log deflate
</Location>

Ora è sufficiente riavviare Apache:

# /etc/init.d/apache2 restart

per fargli digerire le modifiche.
Ogni file richiesto dai visitatori verrà registrato all'interno del file di log precedentemente creato. Una tipica riga di log è la seguente:

"GET /info.php HTTP/1.1" 7621/45430 (16%)

da cui possiamo vedere che il visitatore ha richiesto il file info.php e che Apache lo ha inviato con una compressione del 16%.
Poiché questo file di log tenderà a diventare enorme, il mio consiglio è di tenere attiva la registrazione dei log per il solo periodo necessario al debug del modulo. Una volta verificato il corretto funzionamento di Apache sarà possibile disabilitare la registrazione dei log semplicemente commentando le righe relative nel file di configurazione di mod_deflate.

Il modulo mod_expires

Ora che i browser dei nostri utenti scaricano utilizzando la compressione da noi impostata, possiamo anche fare in modo che non richiedano al nostro server dei files inutili che già hanno nella loro cache locale.
Per fare questo utilizziamo il modulo mod_expires che è già presente in un'installazione di default di Apache in Debian:

# a2enmod expires
Module expires already enabled
Warning.png ATTENZIONE
Debian Stretch contiene già di default le configurazioni seguenti, per cui NON occorre applicare quanto descritto in questo paragrafo.


Fino a Debian Jessie

Noi ci limiteremo quindi a ottimizzarne la configurazione, agendo sul file:

# nano /etc/apache2/conf.d/mod_expires

e facendo in modo che contenga:

<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType application/javascript "access plus 1 months"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 months"
</IfModule>

Riavviamo Apache:

# /etc/init.d/apache2 restart

e il gioco è fatto.

I moduli mod_status e mod_info

mod_status è un utile modulo che fornisce informazioni sullo stato, sulle performances e sulle attività di un server Apache. Il modulo è già installato di default in Debian e occorre perciò solo abilitarlo.

# a2enmod status
# a2enmod info

Creiamo un file di configurazione per il modulo mod_status:

# nano /etc/apache2/conf.d/mod_status.conf

oppure da Debian Stretch:

# nano /etc/apache2/mods-available/status.conf

contenente:

<Location /server-status>
    SetHandler server-status
    # Fino a Debian Jessie
    #Order deny,allow
    #Deny from all
    #Allow from 192.168.0.0/24
    # Da Debian Stretch
    Require ip 192.168.0.0/24
</Location>

Dove ovviamente al posto della classe 192.168.0.0/24 dovremo indicare la classe di indirizzi della nostra LAN.
Creiamo un file di configurazione per il modulo mod_info:

# nano /etc/apache2/conf.d/mod_info.conf

oppure da Debian Stretch:

# nano /etc/apache2/mods-available/info.conf

contenente:

<Location /server-info>
    SetHandler server-info
    # Fino a Debian Jessie
    #Order deny,allow
    #Deny from all
    #Allow from 192.168.0.0/24
    # Da Debian Stretch
    Require ip 192.168.0.0/24</Location>

Dove ovviamente al posto della classe 192.168.0.0/24 dovremo indicare la classe di indirizzi della nostra LAN.
A questo punto riavviamo Apache:

# /etc/init.d/apache2 restart

e verifichiamo che il modulo sia in funzione, collegandoci all'indirizzo:

oppure

Strumenti per il monitoraggio del traffico di rete

iftop

iftop è uno strumento da linea di comando che produce una lista in real-time delle connessioni di rete attive. Di default le connessioni sono presentate in ordine di consumo di banda. Per installare il tool è sufficiente:

# apt-get install iftop

Per avviare il programma è sufficiente invocarlo, specificando come parametro l'interfaccia di rete che si vuole monitorare:

# iftop -i eth0 -B

Alcune altre utili opzioni:

   -h                  display this message
   -n                  don't do hostname lookups
   -N                  don't convert port numbers to services
   -p                  run in promiscuous mode (show traffic between other
                       hosts on the same network segment)
   -b                  don't display a bar graph of traffic
   -B                  Display bandwidth in bytes
   -i interface        listen on named interface
   -f filter code      use filter code to select packets to count
                       (default: none, but only IP packets are counted)
   -F net/mask         show traffic flows in/out of network
   -P                  show ports as well as hosts
   -m limit            sets the upper limit for the bandwidth scale
   -c config file      specifies an alternative configuration file

Apachetop

È uno strumento che mostra informazioni come le richieste per secondo, i bytes per secondo e gli URL più richiesti. Per installarlo:

# apt-get install apachetop

Per avviarlo basta il comando:

# apachetop

slurm

Slurm è un monitor del carico di rete; può mostrare in realtime le statistiche sul traffico, può monitorare ogni interfaccia di rete e utilizza una gradevole ascii-art per mostrare i propri grafici. Per installarlo:

# apt-get install slurm

Per utilizzarlo:

# slurm [-hHz] [-csl] [-d delay] [-t theme] -i interface

Ad esempio:

# slurm -i eth0

Darkstat

Darkstat è un semplice strumento di monitoraggio della banda basato su un'interfaccia web. Per installarlo:

# apt-get install darkstat

Per visualizzare le statistiche e i grafici è sufficiente collegarsi all'indirizzo:

http://indirizzo.ip.del.server:667




Guida scritta da: Ferdybassi 12:20, 6 mar 2011 (CET) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized