Nginx è un server HTTP gratuito, open source e ad alte prestazioni che, a differenza dei suoi "amici", non si basa sulla gestione in thread delle richieste ma utilizza invece un'architettura (asincrona) guidata da eventi molto più scalabile. Questo utilizza una quantità di memoria molto piccola e prevedibile sotto carico pesante. Nginx in combinazione con il semplice e molto robusto FastCGI Process Manager per PHP (PHP-FPM) e il server di database più famoso al mondo MySQL può darti molta potenza e prestazioni pur utilizzando un ingombro di memoria ridotto.
Il seguente articolo esamina come installare e configurare questo stack su uno dei nostri VPS basati su Debian.
# apt-get update && apt-get -y upgrade --show-upgraded
# echo -e "deb http://packages.dotdeb.org squeeze all" >> /etc/apt/sources.list
# gpg --keyserver keys.gnupg.net --recv-key 89DF5277 && gpg -a --export 89DF5277 | apt-key add -
– Dovresti ottenere qualcosa come l'output di seguito:
gpg:requesting key 89DF5277 from hkp server keys.gnupg.net
gpg:key 89DF5277:public key “Guillaume Plessis ” importata
gpg:nessuna chiave definitiva trovata
gpg:numero totale elaborato:1
gpg:importato:1 (RSA:1)
OK
# apt-get update
– Se hai un server web Apache in esecuzione sul tuo sistema, devi fermarlo e disabilitarlo in modo che Nginx possa essere avviato in seguito. Per fare ciò, esegui il seguente comando:
# [[ $(pgrep apache2) ]] && service apache2 stop && update-rc.d -f apache2 disable
# apt-get -y install nginx # apt-get -y install php5-fpm php5-gd php5-curl php5-mysql # apt-get -y install mysql-server
server { server_name example.com www.example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log error; root /var/www/; index index.php index.html index.htm; location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; ## prevent php version info fastcgi_hide_header X-Powered-By; } }
assicurati di sostituire "example.com" con il nome di dominio desiderato. Inoltre, sentiti libero di impostare la radice del documento e i percorsi di registro a tuo piacimento.
# ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/
# for s in nginx php5-fpm mysql; do service $s restart; done
# echo -e "<?php\n\tphpinfo();\n?>" > /var/www/info.php # chown -R www-data: /var/www/
Ora vai a 'http://example.com/info.php' e dovresti vedere la pagina delle informazioni integrate in PHP.
È una buona idea e si consiglia di installare un motore di cache per ottimizzare e far funzionare le cose più velocemente. La cache PHP-APC può migliorare drasticamente le prestazioni, quindi installala in questo modo:
# apt-get -y install php5-apc && service php5-fpm restart
Le impostazioni APC predefinite vanno bene, ma ovviamente la personalizzazione delle opzioni può velocizzare notevolmente le cose, quindi resta sintonizzato poiché in alcuni dei prossimi articoli approfondiremo l'ottimizzazione altamente dello stack LEMP in modo che tu possa trarre vantaggio dall'usarlo sul tuo privato virtuale server.
PS. Se questo post ti è piaciuto condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o semplicemente lascia una risposta qui sotto. Grazie.