Introduzione

Nginx è un server HTTP e proxy inverso gratuito, open source e ad alte prestazioni, responsabile della gestione del carico di alcuni dei più grandi siti su Internet.

Nginx può essere utilizzato come server Web autonomo e come proxy inverso per Apache e altri server Web.

Rispetto ad Apache, Nginx è in grado di gestire un numero molto elevato di connessioni simultanee e ha un ingombro di memoria inferiore per connessione.

Questo tutorial ti insegnerà come installare e gestire Nginx sul tuo computer CentOS 8.

Prerequisiti

Prima di iniziare con il tutorial, assicurati di aver effettuato l'accesso come utente con i privilegi di sudo e di non avere Apache o altri servizi in esecuzione sulla porta 80 o 443.

Se desideri installare Nginx su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare Nginx su CentOS

Seguire i passaggi seguenti per installare Nginx sul server CentOS:

I pacchetti Nginx sono disponibili nei repository EPEL. Se non hai già installato il repository EPEL puoi farlo digitando:

sudo dnf install epel-release

Installa Nginx digitando il seguente comando yum:

sudo dnf install nginx

Se è la prima volta che si installa un pacchetto dal repository EPEL, dnf potrebbe richiedere di importare la chiave GPG EPEL. L'output potrebbe essere simile al seguente:

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
Userid     : "Fedora EPEL (7) "
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
Package    : epel-release-7-9.noarch (@extras)
From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Is this ok [y/N]:

In tal caso, digitare y e premere Enter.

Una volta completata l'installazione, abilitare e avviare il servizio Nginx con:

sudo systemctl enable nginx
sudo systemctl start nginx

Controlla lo stato del servizio Nginx con il seguente comando:

sudo systemctl status nginx

L'output dovrebbe assomigliare a questo:

● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-01-15 23:03:11 CET; 3min 54s ago
  Process: 8143 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 8141 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 8140 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 8145 (nginx)
    Tasks: 2 (limit: 12251)
   Memory: 3.9M
   CGroup: /system.slice/nginx.service
           ├─8145 nginx: master process /usr/sbin/nginx
           └─8146 nginx: worker process

Se il tuo server è protetto da un firewall devi aprire entrambe le porte HTTP (80) e HTTPS (443).

Utilizzare i seguenti comandi per aprire le porte necessarie:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Per verificare l'installazione di Nginx, apri  il browser che preferisci e connettiti al tuo indirizzo IP o nome dominio http://DOMINIO_O_INDIRIZZO_IP e vedrai la pagina di benvenuto predefinita di Nginx.

Gestire il servizio Nginx con systemctl

È possibile gestire il servizio Nginx come qualsiasi altra unità di sistema.

Per interrompere il servizio Nginx, eseguire:

sudo systemctl stop nginx

Per avviarlo di nuovo, digitare:

sudo systemctl start nginx

Per riavviare il servizio Nginx :

sudo systemctl restart nginx

Ricarica il servizio Nginx dopo aver apportato alcune modifiche alla configurazione:

sudo systemctl reload nginx

Se si desidera disabilitare il servizio Nginx per l'avvio all'avvio:

sudo systemctl disable nginx

E per riattivarlo di nuovo:

sudo systemctl enable nginx

Struttura e best practice del file di configurazione di Nginx

  • Tutti i file di configurazione di Nginx si trovano nella directory /etc/nginx/.
  • Il file di configurazione principale di Nginx è /etc/nginx/nginx.conf.
  • Per facilitare la manutenzione della configurazione di Nginx, si consiglia di creare un file di configurazione separato per ciascun dominio.
  • I nuovi file di blocco del server Nginx devono terminare .conf ed essere archiviati nella directory /etc/nginx/conf.d. Puoi avere tutti i blocchi server di cui hai bisogno.
  • È una buona idea seguire una convenzione di denominazione standard, ad esempio se il tuo nome di dominio èmydomain.com il tuo file di configurazione dovrebbe essere nominato/etc/nginx/conf.d/mydomain.com.conf
  • Se si utilizzano segmenti di configurazione ripetibili nei blocchi server dei domini, è consigliabile creare una directory denominata /etc/nginx/snippets refactoring di tali segmenti in frammenti e includere il file di frammenti nei blocchi server.
  • I file di registro (access.log e error.log) di Nginx si trovano nella directory /var/log/nginx/. Si consiglia di avere file di registro diversi access e error per ciascun blocco server.
  • È possibile impostare la directory principale del documento di dominio in qualsiasi posizione desiderata. Le posizioni più comuni per webroot includono:
  • /home/<user_name>/<site_name>
  • /var/www/<site_name>
  • /var/www/html/<site_name>
  • /opt/<site_name>
  • /usr/share/nginx/html

Conclusione

Congratulazioni, hai installato Nginx con successo sul tuo server CentOS 8. Ora sei pronto per iniziare a distribuire le tue applicazioni e utilizzare Nginx come server Web o proxy.

Un certificato sicuro è una funzione "indispensabile" per tutti i siti Web al giorno d'oggi. Per proteggere il tuo sito Web con un certificato SSL Let's Encrypt gratuito puoi consultare il nostro tutorial su come proteggere Nginx con Let's Encrypt su CentOS 8.