Come installare Nginx su Ubuntu 20.04 LTS

Guida completa passo passo per installare e configurare un server web Nginx su un sistema Ubuntu 20.04

Nginx è un server Web proxy inverso open source e popolare disponibile su più piattaforme. Il software è stato sviluppato da Igor Sysoev come soluzione al problema C10K e rilasciato per la prima volta nel 2004. Il problema C10K è il problema di gestire diecimila client contemporaneamente, il che non era abbastanza facile nei primi anni 2000.

In questo tutorial, esaminiamo come installare e configurare Nginx su Ubuntu 20.04 LTS.

Prerequisiti

Un sistema con Ubuntu 20.04 installato e un sudo utente. Inoltre, non è necessario disporre di altri server Web come Apache in esecuzione sulla porta 80 o 443.

Installazione di Nginx

Nginx è disponibile nel repository Ubuntu 20.04 e adatto il gestore di pacchetti può essere utilizzato per installarlo. Quindi, per installare Nginx, apri il terminale usando ctrl+alt+t e corri:

sudo apt update && sudo apt install nginx

L'installazione verrà completata presto e il demone Nginx si avvierà automaticamente in background. Quindi, per controllare lo stato di Nginx, esegui:

sudo systemctl status nginx

Dopo aver eseguito il comando sopra dovresti ottenere lo stato di Nginx come attivo (in esecuzione) in verde come mostrato di seguito.

Configurazione di Ubuntu Firewall (UFW)

Per impostazione predefinita, le porte in uscita HTTP (80) e HTTPS (443) sono chiuse su Ubuntu 20.04. Inoltre, il demone firewall predefinito ufw è disabilitato poiché tutte le porte sono chiuse.

Pertanto, per accedere al server Nginx da altri sistemi, dovrai abilitare il ufw e configurarlo correttamente per consentire il traffico sulla porta 80 e 443. Prima di abilitare ufw, sappi che se stai configurando Nginx su un server remoto, aggiorna prima il ufw regole per consentire ssh eseguendo:

sudo ufw consenti ssh

Il comando sopra consente il ssh accesso al server remoto, senza consentire ssh sarai bloccato fuori dal server remoto.

Dopo aver abilitato ssh accesso, è possibile abilitare il ufw demone firewall eseguendo:

sudo ufw enable

Ora devi modificare le regole del firewall per consentire le porte HTTP e HTTPS in modo che Nginx possa servire il traffico web. Per modificare le regole, eseguire:

sudo ufw allow 'Nginx Full'

Nginx completo consente sia le porte HTTP che HTTPS per il traffico in entrata e in uscita da tutti gli indirizzi IP.

Successivamente, verifica se le regole sono state aggiunte correttamente a ufw firewall eseguendo il comando:

sudo ufw status

Il comando sopra mostrerà le regole che abbiamo aggiunto a ufw demone del firewall.

Connessione al server Nginx

Ora che abbiamo installato Nginx e configurato ufw per consentire il traffico web HTTP e HTTPS in entrata, dovresti essere in grado di accedere al server Nginx utilizzando l'indirizzo IP del server.

Se non conosci l'indirizzo IP del server, usa il comando seguente per recuperarlo facilmente.

indirizzo ip mostra eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Una volta ottenuto l'indirizzo IP, incollalo nel browser e premi invio.

//tuo-ip-server

Se tutto è stato configurato correttamente, dovresti essere in grado di vedere la pagina web "Benvenuto in nginx!".

File e directory Nginx

Ora che abbiamo installato e in esecuzione Nginx sul tuo server. Diamo un'occhiata ad alcuni degli importanti file e directory Nginx che dovrai utilizzare per configurare il tuo sito Web/app Web.

Contenuto del server web

Puoi configurare qualsiasi posizione che desideri come directory principale per il tuo blocco di server. L'HTML predefinito di Nginx è direttamente /var/www/html, è dove si trova la pagina di "benvenuto" a cui abbiamo avuto accesso in precedenza.

Altre posizioni che vengono solitamente utilizzate come directory principale per i domini includono:

  • /casa//
  • /var/www/html/
  • /optare/

File di configurazione Nginx

Tutti i file di configurazione di Nginx si trovano in /etc/nginx directory. Diamo un'occhiata ad alcuni dei file importanti di cui abbiamo bisogno per impostare un dominio di base.

  • /etc/nginx/nginx.conf: Questo file contiene tutta la configurazione necessaria per eseguire Nginx.
  • /etc/nginx/siti-disponibili/: Questa directory contiene tutta la configurazione del blocco server dei domini, ma attualmente non sono abilitati/distribuiti e quindi non accessibili dai client.
  • /etc/nginx/sites-enabled/: Questa directory contiene i domini attualmente attivi/abilitati accessibili dai client. Per abilitare un dominio dobbiamo collegare il file di configurazione del dominio da siti-disponibili al siti abilitati directory.
  • /etc/nginx/snippets/: In questa directory, possiamo memorizzare segmenti di configurazione potenzialmente riutilizzabili. Risparmia molto tempo nell'ambiente di produzione grazie al fatto che può rendere riutilizzabili segmenti/blocchi di configurazione.

Registri del server

Nginx registra gli eventi/attività e li memorizza nei file di registro nel /var/log/nginx directory. Nginx registra le attività in questi file:

  • /var/log/nginx/access.log: Questo file registra i client che hanno avuto accesso al server Nginx. I dettagli includono l'indirizzo IP del client, l'ora e la data, il browser utilizzato per accedere al server e il sistema operativo.
  • /var/log/nginx/error.log: questo file registra gli errori riscontrati dal server Nginx durante l'esecuzione.

Quindi, in questa sezione, abbiamo brevemente esaminato alcuni importanti file e directory Nginx che sono sufficienti per iniziare.

Configurazione di blocchi server

Ora che abbiamo alcune conoscenze di base sui file e sul server Nginx, siamo pronti per configurare il nostro blocco server. I blocchi server sono simili agli host virtuali Apache.

Vedremo come creare un blocco server e per dimostrare che useremo esempio.com come dominio nel processo di creazione.

Sostituisci esempio.com con il tuo nome di dominio.

Prima di iniziare a configurare Server Blocks, è necessario creare una directory che funga da directory principale per il contenuto del sito web. Creiamo /var/www/example.com/html directory per l'utilizzo del dominio mkdir comando.

sudo mkdir -p /var/www/example.com/html

Il -P opzione creerà tutte le directory padre necessarie. Cioè, creerà esempio.com una directory principale per html se non esiste.

Cambia la proprietà della directory con il $UTENTE variabile d'ambiente:

sudo chown -R $USER:$USER /var/www/example.com/html

Quindi, crea un semplice index.html file a cui si accederà quando si visita il dominio che si sta configurando. Questo è solo a scopo esplicativo.

nano /var/www/example.com/html/index.html

Incolla il seguente contenuto nel file che abbiamo appena creato sul server.

  Benvenuto su example.com! 

io! L'esempio.com è accessibile!

premere ctrl+o per scrivere e salvare il index.html file e quindi premere ctrl+x uscire nano editore.

Ora finalmente possiamo passare alla creazione di un blocco server, in modo che Nginx possa servire il index.html quando qualche utente va a esempio.com. Quindi per creare un blocco server dobbiamo creare un file di configurazione denominato esempio.com in siti-disponibili directory. Per farlo, usiamo nano ed eseguiamo:

sudo nano /etc/nginx/sites-available/example.com

Quindi, digita o copia/incolla la seguente configurazione. Quindi premere ctrl+o e invio per scrivere e salvare. Allo stesso modo, premere ctrl+x per chiudere l'editor nano.

server { ascolta 80; ascolta [::]:80; nome_server esempio.com www.esempio.com; root /var/www/example-domain.com/html; indice index.html; posizione / { try_files $uri $uri/ =404; } }

La configurazione di cui sopra è simile alla configurazione di blocco del server predefinita, l'abbiamo cambiata radice istruzione per puntare alla nostra nuova directory principale e cambiato il nome del server al nostro nome di dominio. Mentre il Posizione{} L'istruzione funge da istruzione catch di errore se i file non vengono trovati e visualizza l'errore 404 al client.

Successivamente, possiamo abilitare il nostro blocco server in modo che Nginx serva esempio.com pagine web. Per abilitare il nostro blocco server dobbiamo creare un collegamento simbolico di esempio.com file da siti-disponibili a siti abilitati directory. Per farlo, esegui:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled

Verrà creato un collegamento in abilitato per il sito directory e ora esempio.com dovrebbe essere abilitato. Ora abbiamo due blocchi server abilitati sul nostro server Nginx che risponderanno alla richiesta in base a Ascoltare e nome_sever direttive salvate in esempio.com configurazione del blocco del server.

Per verificare se tutti i file di configurazione sono corretti e non sono presenti errori di sintassi, eseguire:

sudo nginx -t

Ora, finalmente riavvia Nginx per applicare le modifiche eseguendo il seguente comando:

sudo systemctl riavvia nginx

Nginx inizierà a servire il tuo blocco server ora, puoi andare su //tuo-nome-dominio e guarda la tua pagina web dal vivo.

Nota: Affinché la sezione precedente funzioni, dovrai impostare il tuo dominio e sostituirlo esempio.com con il proprio nome di dominio. Inoltre, dovrai configurare il DNS affinché il tuo dominio punti all'indirizzo IP del tuo server Nginx.

Per concludere, abbiamo visto come installare Nginx, configurare ufw per consentire l'accesso remoto al server Nginx, connesso a Nginx in remoto, ha acquisito familiarità con alcuni file e directory di base di Nginx e ha imparato come configurare un blocco server.

Per sapere e saperne di più su Nginx, potresti voler vedere Nginx wiki.