mercoledì 22 maggio 2013

Ottimizzare le prestazioni di un web server con nginx


I tempi di caricamento di un sito web sono essenziali per offrire un servizio di qualità ai visitatori. Il web server gioca un ruolo fondamentale ed è per questo che va ottimizzato in maniera opportuna.

Nel caso si utilizzi il web server Apache esistono molte strategie per configurarlo in maniera ottimale, inoltre è anche possibile affiancarlo o addirittura sostituirlo con un web server alternativo dalle prestazioni molto elevate: nginx.

Nginx come web server

Nginx può sostituire completamente apache e grazie al supporto per PHP (tramite FastCGI) riesce a gestire siti dinamici in PHP senza grossi problemi, le prestazioni però non sono molto diverse da Apache.

Transparent reverse proxy con nginx

Nginx è invece usato molto più spesso come reverse proxy server, è infatti proprio questo il suo uso originale. Si tratta di un sistema efficace per aumentare le prestazioni di un sito web. Un reverse proxy trasparente agli utenti fornisce ai visitatori di un sito le risorse statiche con un impatto minimo sulle risorse hardware del server.

La configurazione classica è quella che vede un server con Apache che si occupa di generare i contenuto dinamici, ed un secondo server con Nginx configurato come "ponte" tra i visitatori ed il web server.

Ottimizzare l'applicazione prima del server

In ogni caso, quando si ha una applicazione web dinamica, sia essa sviluppata in PHP, java o in un altro linguaggio, il primo punto dove si deve intervenire per migliorarne le prestazioni è proprio l'applicazione stessa.

Spesso infatti la lentezza di caricamento ed esecuzione del codice dipende da una programmazione poco attenta o comunque non orientata alle prestazioni del sistema.

Paginazione, caching ed algoritmi efficienti sono solo alcuni dei tasselli fondamentali per ottenere applicazioni e siti web veloci.