L'installazione di nginx in ambiente GNU/Linux è abbastanza semplice poiché le distribuzioni più comuni offrono già dei pacchetti precompilati pronti per l'installazione. Inoltre, il progetto nginx mette a disposizione dei repository per alcune distribuzioni tra le quali Ubuntu, Debian e CentOS/RHEL. L'accesso ai repository di nginx consente di installare versioni più aggiornate rispetto a quelle disponibili nei repository delle varie distribuzioni.
In alternativa, poiché nginx è rilasciato con licenza BSD, è sempre possibile scaricare e compilare i codici sorgenti. Questa operazione, sconsigliata ai meno esperti, consente di ottenere un grado maggiore di personalizzazione, permettendo ad esempio di scegliere quali moduli attivare e quali invece non compilare.
Installazione su Ubuntu/Debian
L'installazione dai repository ufficiali avviene mediante il comando standard apt-get. Il nome del pacchetto da installare è appunto nginx. Basterà quindi digitare:
# apt-get install nginx
Nel caso in cui si voglia installare il pacchetto dai repository ufficiali di nginx, bisognerà prima aggiungere sia il repository che la relativa chiave pubblica nella lista di repository consultata da apt-get. Per installare la chiave pubblica del repository, digitare il comando:
# wget https://nginx.org/keys/nginx_signing.key
# apt-key add nginx_signing.key
L'aggiunta del repository avviene invece modificando il file sources.list, presente nella directory /etc/apt, aggiungendo le righe:
deb https://nginx.org/packages/mainline/ubuntu/ <CODENAME> nginx
deb-src https://nginx.org/packages/mainline/ubuntu/ <CODENAME> nginx
dove <CODENAME>
è il nome in codice della versione di Ubuntu in uso. Ad esempio, nel caso di Ubuntu 18.04, il cui codename è "bionic", bisognerà aggiungere le righe:
deb https://nginx.org/packages/mainline/ubuntu/ bionic nginx
deb-src https://nginx.org/packages/mainline/ubuntu/ bionic nginx
Dopo aver modificato il file sources.list, aggiornare la lista di pacchetti con il comando:
# apt-get update
Quindi procedere con l'installazione, mediante il comando:
# apt-get install nginx
Nel caso in cui si utilizzi Debian, le operazioni sono del tutto analoghe. L'unica differenza consiste, come si può intuire, nel codename della distribuzione. Ad esempio, se si utilizza Debian 8.2, il codename da utilizzare nel file sources.list sarà "jessie".
Installazione su CentOS/RHEL
I pacchetti di nginx per CentOS e Red Hat sono presenti nel repository Extended (o EPEL, Extended Packages for Enterprise Linux). Pertanto, qualora non fosse già attivo, esso va attivato con il comando:
# yum install epel-release && yum update
Dopo aver attivato il repository EPEL ed aver aggiornato la lista dei pacchetti disponibili, si può procedere all'installazione con il comando:
# yum install nginx
In alternativa, è possibile installare nginx dai repository del progetto, aggiungendo (come nel caso di Ubuntu) tale repository al sistema. Per prima cosa, creare un file di configurazione per yum, ad esempio con il comando:
# vi /etc/yum.repos.d/nginx.repo
Il contenuto del file nginx.repo deve essere il seguente:
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/<OS>/<OSRELEASE>/$basearch/
gpgcheck=0
enabled=1
avendo cura di modificare opportunamente i valori <OS>
e <OSRELEASE;>
. In particolare, dovremo sostituire ad OS
i valori rhel
o centos
in base al sistema in uso, ed il numero di versione della distribuzione al posto di OSRELEASE
. Ad esempio, se il sistema in uso è CentOS versione 7, digitare:
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
Dopo aver modificato il file .repo, aggiornare la lista dei pacchetti con:
# yum update
Quindi installare il pacchetto con il comando:
# yum install nginx
Installazione mediante Docker
Un'altra possibilità per eseguire nginx consiste nell'utilizzo delle immagini Docker ufficiali. Per avviare un container nginx, è sufficiente digitare il comando:
# docker run --name miocontainer -p 80:80 -d nginx
In questo semplice esempio, il container resta in ascolto sulla porta 80 dell'host, pronto a ricevere richieste HTTP dall'esterno.
Per rendere permanente la configurazione del servizio e permettere al container di accedere ai file presenti sull'host, è possibile montare i volumi /var/nginx/conf e /var/www. Supponendo di voler mantenere i file di configurazione in /mnt/data/nginx-config ed in /mnt/data/www rispettivamente, il comando necessario per avviare il container sarà:
# docker run --name miocontainer --mount type=bind source=/var/www,target=/mnt/data/www,readonly --mount source=/var/nginx/conf,target=/mnt/data/nginx-config,readonly -p 80:80 -d nginx
Utilizzando l'opzione readonly
si impedisce al container di modificare i file presenti nel volumi montati.
Infine, ricordiamo che è possibile creare una propria immagine personalizzata basata su quella ufficiale. In questo caso, sarà sufficiente specificare nella clausola FROM del proprio Dockerfile il nome dell'immagine di nginx. Ad esempio:
# FROM nginx
Installazione su Windows
L'utilizzo dei binari di nginx per Windows è sconsigliato, poichè esso è stato concepito per beneficiare della presenza nel sistema operativo di un sistema di gestione degli eventi ad alta efficienza. Nell'implementazione per Windows, nginx utilizza solo i metodi select()
e poll()
per la gestione delle connessioni, decisamente meno potenti del metodo epoll()
utilizzato su Linux.
I binari per Windows sono disponibili per il download direttamente sul sito del progetto nginx.
Installazione su macOS
In ambiente macOS, nginx può essere installato utilizzando dei gestori dei pacchetti non ufficiali, come ad esempio Homebrew. Per brevità si rimanda alle istruzioni disponibili sul sito ufficiale per la configurazione del gestore dei pacchetti.
Dopo aver attivato Homebrew, sarà sufficiente digitare il comando:
# brew install nginx
in una finestra di terminale per installare nginx nel vostro sistema.