Home» Blog» Ottimizzazione sito Web – Analisi Tempo B (Server Web)
Web Server

Una volta che la richiesta della pagina da servire arriva al nostro web server, quest’ultimo eseguirà vari controlli di configurazione e provvederà alla creazione del risultato da spedire indietro al browser che ha eseguito la richiesta. In questa zona di tempo la cosa più importante è la scelta del software che deve svolgere le funzioni di server web, io personalmente uso apache ma ci possono essere dei casi dove possono essere prese in considerazioni anche scelte diverse. Una volta scelto il software bisogna analizzare bene i moduli che necessitiamo e non installare tutto, in quanto i moduli occupano memoria e risorse. Ogni web server ha un file di configurazione che andrà analizzato in dettaglio per controllare le regole di rewrite, di autorizzazione accesso, alias, cache control e molto altro.

Server Web: Sicuramente il software più famoso ed installato è Apache Web Server, ma ci sono dei casi in cui consiglio di provare anche versioni più leggere come LighttpdNginx. Inoltre, se ad esempio abbiamo a disposizione delle macchine poco performanti o vogliamo delegare la consegna delle risorse statiche ad un server secondario esistono tantissimi software di web server che occupano poca memoria e usano pochissime risorse, mi riporto un articolo presente nel sito IBM dove potete vedere un lungo elenco. DeveloperWorks – Lightweight Web servers

Moduli aggiuntivi: Ogni web server ha la possibilità di installare dei moduli aggiuntivi per determinate funzioni, ad esempio il modulo per il rewrite che ci permette di modificare il nostro URL  in base alla pagina di destinazione, il modulo header in cui possiamo configurare l’aggiunta o la rimozione di informazioni presenti nell’header del protocollo HTTP, come ad esempio le indicazioni di cache control, connection, content-encoding ed altro ancora. Molti moduli vengono aggiunti automaticamente nell’installazione standard del software e non è detto che servano tutti per l’esigenza del sito che vogliamo pubblicare. Quindi la prima cosa da fare è analizzare l’elenco dei moduli caricati ed eliminare quelli che non ci serviranno. In apache normalmente trovate due directory una per i moduli disponibili e l’altra per i moduli attivi, usate i seguenti comandi per avere un’elenco su cui iniziare a lavorare:

# Lista dei moduli attivati e/o disponibili
ls /etc/apache2/mods-enabled/ -l
ls /etc/apache2/mods-available -l

# Attivazione di un modulo  = a2enmod nome_modulo
# Disattivazione dei moduli = a2dismod nome_modulo

File di configurazione: Un’altro posto importante dove trovare alcuni parametri collegati alla performance è il file di configurazione principale. Ad esempio in Apache nel file apache2.conf troverete i parametri di StartServers, MinSpareServers, MaxSpareServer, ect che servono per regolare le azioni legate ai processi che saranno generati a fronte delle varie richieste:

  • StartServer: Il numero di processi che saranno avviati alla partenza di apache, infatti se ad esempio sappiamo a priori che il nostro sito web necessiti come minimo di cinque processi contemporanei, possiamo impostare questo parametro a 5.
  • MinSpareServers: Il numero dei processi in attesa che devono essere presenti nel sistema. Se le richieste esterne aumentano allora il numero dei processi in attesa diminuisce in quanto gli altri processi stanno elaborando delle richieste, ma se questo numero raggiunge la soglia specificata in questo parametro verranno aperti altri nuovi processi in attesa, una specie di scorta di sicurezza che ci permette a fronte di una nuova richiesta la disponibilità di un processo in attesa che verrà assegnato alla nuova richiesta.
  • MaxSpareServer: Indica il numero massimo dei processi liberi che possono essere presenti nel sistema, quando viene raggiunto questo valore verranno chiuso tutti i processi in eccesso, questa funzione è molto importante nel caso che durante la giornata abbiate dei picchi di traffico che ovviamente hanno aperto parecchi processi ma che in seguito non sono più necessari ed è quindi giusto levarsi dal sistema e recuperare risorse.
  • MaxClients: Il numero massimo di processi che possono essere attivati. Questo parametro deve essere impostato in base alle caratteristiche del server, maggiore potenza e memoria avete a disposizione e maggiore sarà il numero di client che potete servire contemporaneamente. Non impostate questo parametro al di sopra delle possibilità del vostro server è meglio servire 100 richieste e lasciarne fuori 10 che bloccarle tutte.
  • MaxRequestPerChild: Indica il numero massimo di richieste che può effettuare un processo, raggiunto questo limite il processo sarà chiuso e la nuova richiesta sarà assegnata ad un nuovo processo che ripartità dal valore zero. Questa parametro è importante nel caso il processo accumoli risorse di memoria durante le sue esecuzioni.

DNS Lookup: Controllare sul file di configurazione principale il parametro HostnameLookups ed impostarlo sul valore Off. Questo parametro se impostato su ON cercherà ad ogni richiesta ricevuta di convertire l’indirizzo IP in un nome di dominio, molto utile per la chiarezza di un file di log ma disastroso per quanto riguarda le performance generali.

Virtual Hosting: Sicuramente se il vostro sito si trova in ambiente condiviso dovrete usare il file chiamato .htaccess per personalizzare alcuni parametri, ad esempio se utilizzate wordpress queste impostazioni diventano obbligatorie. Ma se vi trovate nella condizione in cui potete modificare il file principale di apache che riguarda il vostro virtual host vi consiglio di spostare la configurazione .htaccess in questo file. Infatti i files .htaccess vengono letti ed elaborati ad ogni richiesta mentre il file principale viene elaborato solo nella fase di avvio del web server.

<Directory /var/www/vostra_directory/>
   AllowOverride None
   ### CONTENUTO .HTACCESS ###
</Directory>

Indice generale della guida ottimizzazione sito web

Autore:
Articoli:
57
Website:
http://startbyzero.com/
Nato a Roma nel 1968, appassionato di informatica da subito con il primo acquisto di un Sinclair ZX Spectrum, programmatore e sistemista su sistemi IBM iSeries, sviluppatore di procedure web con PHP e MySQL, grande utilizzatore e stimatore dei prodotti Google ed Amazon AWS. Attualmente vive in Perù nella città di Lima, da dove porta avanti il suo progetto favorito riguardante il blog multitematico di startbyzero.com.

Condividi

Commenti

Scrivi un tuo commento o qualche consiglio