Installazione di Nginx su Ubuntu 16.04
In questo tutorial andremo ad installare il server web Nginx su Ubuntu 16.04 Server.
Partiamo da una macchina virtuale Ubuntu Server 16.04 ( consiglio la lettura qui), ed installiamo il software Nginx:
sudo apt-get update
sudo apt-get install nginx
attraverso il systemd, controlliamo lo stato di Nginx:
sudo systemctl status nginx
e lo abilitiamo ad avviarsi automaticamente al boot
sudo systemctl enable nginx
mentre per fermare il servizio utilizzare:
sudo systemctl stop nginx
sudo systemctl start nginx
ultima opzione importante è il reload, nel caso di ambienti di produzione , se dovessimo cambiare la configurazione (non per tutte va bene) di Nginx e il sito web non può essere spento, utilizzeremo l’opzione reload per importare i nuovi cambiamenti, al di un riavvio:
sudo systemctl reload nginx
Attiviamo per rendere il nostro server sicuro il firewall ufw (Uncomplicated FireWall ), per controllare le connessioni in entrata e in uscita, in questo modo:
sudo ufw enable
sudo ufw app list
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
consideriamo nel nostro caso di abilitare la porta 80 (HTTP) e la porta 443 (HTTPS), quindi:
sudo ufw allow 'Nginx Full'
Regola aggiunta
Regola aggiunta (v6)
sudo ufw status verbose
Stato: attivo
Registrazione: on (low)
Predefinito: deny (in entrata), allow (in uscita), disabled (instradato)
Nuovi profili: skipA Azione Da
– —— —
80,443/tcp (Nginx Full) ALLOW IN Anywhere
80,443/tcp (Nginx Full (v6)) ALLOW IN Anywhere (v6)
accedendo alla pagina http://ip_server_ubuntu avremo il seguente risultato
Non modificando nessuna direttiva nelle configurazioni di Nginx, avremo che la cartella di default dove potremo creare un sito/applicazione web la ritroveremo al seguente percorso ( vediamo la index di default):
sudo ls -ltra /var/www/html
drwxr-xr-x 2 root root 4096 gen 13 16:40 ./
drwxr-xr-x 3 root root 4096 gen 13 16:40 ../
-rw-r–r– 1 root root 612 gen 13 16:40 index.nginx-debian.html
Nginx presenta diversi file di configurazione, la cartella principale è al seguente percorso:
sudo cd /etc/nginx
-rw-r–r– 1 root root 3071 feb 11 2017 win-utf
-rw-r–r– 1 root root 664 feb 11 2017 uwsgi_params
-rw-r–r– 1 root root 636 feb 11 2017 scgi_params
-rw-r–r– 1 root root 180 feb 11 2017 proxy_params
-rw-r–r– 1 root root 1462 feb 11 2017 nginx.conf
-rw-r–r– 1 root root 3957 feb 11 2017 mime.types
-rw-r–r– 1 root root 2223 feb 11 2017 koi-win
-rw-r–r– 1 root root 2837 feb 11 2017 koi-utf
-rw-r–r– 1 root root 1007 feb 11 2017 fastcgi_params
-rw-r–r– 1 root root 1077 feb 11 2017 fastcgi.conf
drwxr-xr-x 2 root root 4096 lug 12 2017 conf.d/
drwxr-xr-x 2 root root 4096 gen 13 16:40 sites-available/
drwxr-xr-x 2 root root 4096 gen 13 16:40 snippets/
drwxr-xr-x 6 root root 4096 gen 13 16:40 ./
drwxr-xr-x 2 root root 4096 gen 13 16:40 sites-enabled/
drwxr-xr-x 95 root root 4096 gen 13 16:40 ../
come possiamo notare ha una struttura molto simile ad Apache2. Focalizziamola nostra attenzione sulla cartella sites-available e vediamo il file default:
sudo cd sites-available/
sudo vim default
dalla struttura potremo notare un qualcosa di simile ai VirtualHost di Apache2, solo che nel caso di Nginx si chiamano Server Block , avremo:
server {
listen 80 default_server;
listen [::]:80 default_server;index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}}
questo Server Block di default è per siti che viaggiano sulla porta 80. Per abilitare il Server Block si dovrà creare un collegamento simbolico del file default presente nella cartella sites-available nella cartella site-enabled:
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled
Il file di configurazione globale lo ritroviamo al seguente percorso
sudo vim /etc/nginx/nginx.conf
con il seguente output (solo un estratto):
user www-data;
worker_processes auto;
pid /run/nginx.pid;events {
worker_connections 768;
# multi_accept on;
}http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;……..
I percorsi dei file di log globali del software Nginx è possibile impostarli sempre dal file di configurazione globale precedent, in particolare
sudo cd /var/log/nginx
sudo ls -ltra
-rw-r—– 1 www-data adm 0 gen 13 16:40 error.log
drwxr-xr-x 2 root adm 4096 gen 13 16:40 ./
drwxrwxr-x 8 root syslog 4096 gen 13 16:49 ../
-rw-r—– 1 www-data adm 468 gen 13 18:33 access.log