Quando hai finito di scrivere codice per il tuo sito web o web app, ne avrai bisogno in una posizione in cui possa essere eseguito e fornire contenuti ai tuoi utenti. Questo è dove il software del server web entra in gioco. Una semplice ricerca su Google di software per server web vi porterà un bel elenco di soluzioni tra cui scegliere.
In questo tutorial, il nostro focus è su Nginx; e in particolare su come puoi farlo funzionare su Ubuntu 18.04. Nginx è uno dei software per server web più popolari al mondo. Infatti, ci vuole un posto tra i primi cinque su Opensource.com classifiche. È responsabile di garantire la disponibilità e la scalabilità dei siti a più alto traffico su Internet. Garantisce la sicurezza e puoi usarlo come proxy inverso. Quindi, come puoi installare Nginx su Ubuntu 18.04?
Prerequisiti
Naturalmente, hai già un computer che esegue Ubuntu 18.0.4; e hai un utente non root con privilegi sudo. In caso contrario, vai a questo link per scaricare Ubuntu 18.0.4, quindi segui le guide sulla configurazione iniziale del server con Ubuntu per creare un account non root. Una volta che si dispone di un account, è necessario accedere come utente non root, e quindi possiamo procedere con i passaggi successivi.
Passo 1 – Installare Nginx
Ubuntu è basato su Debian. Per installare i pacchetti deb dalla riga di comando, è possibile utilizzare i comandi apt o dpkg. Useremo il comando apt poiché è più popolare. Comando Apt permette agli utenti di installare i pacchetti che sono disponibili dai repository predefiniti della distribuzione Linux specifica che sono in esecuzione. In questo caso, abbiamo Nginx disponibile sui repository predefiniti di Ubuntu 18.04, quindi possiamo procedere. Come regola del pollice, ora e durante l’installazione di qualsiasi pacchetto su una distribuzione Linux, è necessario prima aggiornare; immettere il seguente comando nel terminale per aggiornare:
sudo apt update
per installare Nginx, immettere il seguente comando:
sudo apt install nginx
Seguire le istruzioni, e Nginx sarà installato sul tuo server, insieme con le dipendenze necessarie.
Passo 2-Regolare il Firewall
Lo strumento di configurazione del firewall predefinito per Ubuntu è UFW. UFW sta per Firewall semplice ed è sviluppato per facilitare la configurazione del firewall. Per impostazione predefinita, Nginx si registra come un servizio con UFW dopo l’installazione, rendendo più facile per la configurazione di accesso Nginx. Per prima cosa, attivare il UFW immettendo il seguente comando:
sudo ufw enable
Il comando seguente elenca la configurazione dell’applicazione che UFW permette di:
sudo ufw app list
questo è un screengrab di ciò che il vostro terminale potrebbe assomigliare a questo:
mostra 3 profili disponibili per Nginx. Sono descritti di seguito:
- Nginx Full – apre sia la porta 80 che la 443. La porta 80 è per il traffico normale/non crittografato, ad esempio http. La porta 443 è per il traffico crittografato TLS / SSL. cioè https.
- Nginx HTTP-apre solo la porta 80.
- Nginx HTTPS-apre solo la porta 443.
Come raccomandazione, è necessario abilitare solo il profilo che consentirà il traffico configurato per l’applicazione Web. In questo caso, andremo con Nginx HTTP (porta 80) poiché non abbiamo configurato SSL. Il seguente comando lo abilita:
sudo ufw allow 'Nginx HTTP'sudo ufw allow 'OpenSSH'
Per verificare la modifica, immettere il seguente comando:
sudo ufw status
Il tuo terminale dovrebbe mostrare qualcosa di simile allo screengrab qui sotto. Si noti che il traffico HTTP è consentito ovunque:
Passo 3 – Controllo del server Web
Dopo aver installato Nginx su Ubuntu 18.04, il servizio si avvia automaticamente. Puoi testarlo inserendo il seguente comando nel tuo terminale:
systemctl status nginx
Il tuo terminale dovrebbe visualizzare qualcosa del genere:
Questo mostra che il servizio è stato avviato automaticamente e che è in esecuzione. Come già sapete, lo scopo principale del software server è quello di servire i contenuti. Per testare questo scopo è necessario richiedere una pagina. Puoi farlo accedendo all’indirizzo IP del tuo server dal browser, che dovrebbe visualizzare la pagina di destinazione predefinita di Nginx. Se non conosci l’indirizzo IP del tuo server, di seguito sono riportati alcuni comandi per aiutarti a ottenerlo:
ip addr show ens3 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Di seguito è riportato un altro comando che puoi usare. Ti dà l’indirizzo IP pubblico come si vede dalle posizioni su Internet:
curl -4 icanhazip.com
Il primo comando ti ottiene un indirizzo come mostrato nel terminale qui sotto. Quindi, copialo e testalo nel tuo browser:
Il tuo browser carica la pagina Nginx predefinita che assomiglia alla seguente schermata. Mostra che il tuo server Nginx è effettivamente in esecuzione:
Passo 4-Comandi di gestione Nginx di base
Hai già visto il comando che controlla lo stato di Nginx:
systemctl status nginx
Ora che abbiamo il server attivo e funzionante, ecco alcuni altri comandi che dovresti tenere a portata di mano per gestire il servizio Nginx. Questi comandi funzionano non solo su Ubuntu 18.04 ma anche su tutte le distribuzioni Linux.
Per arrestare il server, immettere il seguente comando:
sudo systemctl stop nginx
Per avviare il server, immettere il seguente comando:
sudo systemctl start nginx
ogni volta che si apportano modifiche significative, come cambiare le porte o le interfacce, è necessario riavviare il server web. Il comando seguente riavvia il server:
sudo systemctl restart nginx
Ogni volta che si apportano modifiche di configurazione minori come la modifica dei blocchi del server, Nginx può ricaricare senza eliminare le connessioni. Ecco il comando per ricaricare:
sudo systemctl reload nginx
Nginx avvia automaticamente il server all’avvio del sistema operativo Ubuntu. Tuttavia, se si desidera modificare questa impostazione, è possibile disabilitare il servizio inserendo il comando seguente:
sudo systemctl disable nginx
E si può riattivare il servizio per l’avvio automatico all’avvio della macchina la prossima volta inserendo:
sudo systemctl enable nginx
Passo 5-Impostazione dei blocchi server
Si potrebbe desiderare di ospitare più siti web (domini) su un server web. I blocchi del server ti aiuteranno a raggiungere questo obiettivo. Se hai usato Apache prima, i blocchi del server in Nginx possono essere confrontati con Apache Vhosts. Fuori dalla scatola, Nginx viene fornito con un blocco server configurato per l’esecuzione dalla directory / var / www / html, quella che ha caricato la pagina Nginx predefinita in una sezione sopra. Questo blocco server va bene quando si esegue un singolo sito. Tuttavia, l’esecuzione di molti siti sarà un problema.
Vogliamo creare un altro sito sullo stesso server e chiamarlo samplesite.com (questo è solo un esempio, dovresti sostituirlo con il tuo nome di dominio).
All’interno della directory /var/www/, creare un’altra directory per samplesite.com. Lasciare il /var/www/html predefinito per servire richieste che non corrispondono a nessun altro sito. Il comando seguente crea la directory per samplesite.com come abbiamo descritto. Il flag-p serve a garantire che il comando crei tutte le directory padre necessarie:
sudo mkdir -p /var/www/samplesite.com/html
Per consentire l’accesso alla directory, è necessario assegnare la proprietà con l’UTENTE ($variabile di ambiente:
sudo chown -R $USER:$USER /var/www/samplesite.com/html
Per verificare che le autorizzazioni per il vostro web radici sono corretti, immettere il seguente comando:
sudo chmod -R 755 /var/www/samplesite.com
Avanti, proviamo a creare un indice semplice.html nel samplesite.com elenco. Puoi aprire l’editor nano come:
nano /var/www/samplesite.com/html/index.html
Il comando apre un editor nel tuo terminale, aggiungi il seguente codice:
<html><head><title>Welcome to samplesite.com!</title></head><body><h1>Success! The samplesite.com server block is running fine!</h1></body></html>
Digitare Ctrl + O, quindi premere Invio per salvare il file. Digitare Ctrl + X per chiudere l’editor.
Successivamente, è possibile creare il blocco server. Invece di modificare e ingombrare il file di configurazione predefinito, si consiglia di crearne uno nuovo in /etc/nginx/sites-available/samplesite.com. Immettere il seguente comando per aprire l’editor nano:
sudo nano /etc/nginx/sites-available/samplesite.com
Nell’editor, inserire il seguente codice, modificato per la directory creata. Nota il nome root e server_name corrispondono alla nostra directory e al dominio che vogliamo servire:
server { listen IP_ADDRESS:80; listen :80; root /var/www/samplesite.com/html; index index.html index.htm index.nginx-debian.html; server_name samplesite.com samplesite.com; location / { try_files $uri $uri/ =404; }}
Quindi, salvare e chiudere il file.
Nginx legge i file di configurazione dalla directory sites-enabled, quindi è necessario creare un collegamento simbolico dal nuovo blocco server alla directory sites-enabled. Il seguente comando lo farà:
sudo ln -s /etc/nginx/sites-available/samplesite.com /etc/nginx/sites-enabled/
Ora hai due blocchi server che possono servire due siti Web su un server Nginx.
Il seguente comando risponde alle richieste sui domini samplesite.com e www.samplesite.com.
curl samplesite.com
E quello predefinito risponderà a tutte le richieste che colpiscono la porta 80 che non corrispondono a nessuno dei due blocchi server:il server Nginx potrebbe probabilmente riscontrare un problema di memoria del bucket hash quando si aggiungono ulteriori blocchi server. Per evitare ciò, è necessario regolare un singolo file in nginx.file conf. Quindi, apri il file con l’editor nano:
sudo nano /etc/nginx/nginx.conf
Quindi, trova la direttiva: server_names_hash_bucket_size e rimuovi il simbolo # per rimuovere il commento, quindi assomiglia a questo:
http { server_names_hash_bucket_size 64;}
Quindi, salva e chiudi il file.
Per testare che tutto il Nginx file senza errori, è necessario immettere il seguente comando:
sudo nginx -t
Se tutto va bene, si dovrebbe vedere qualcosa di simile a questo:
Per la configurazione modifiche abbiano effetto, è necessario prima avviare il Nginx server utilizzando il comando riportato di seguito:
sudo systemctl restart nginx
Ora, immettere il dominio e si dovrebbe vedere la pagina html che abbiamo creato.
Passo 6-Importanti file Nginx e directory che dovresti conoscere
- Directory del contenuto principale
–/var/www / html: La pagina nginx predefinita è memorizzata in questa directory. È il contenuto effettivo che vedi quando accedi al tuo indirizzo IP del server. È possibile modificare questo comportamento modificando i file di configurazione Nginx.
- Directory di configurazione Nginx
–/etc / nginx: La directory principale contenente tutti i file di configurazione Nginx.
– / etc / nginx / nginx.conf: Il principale file di configurazione Nginx che può essere modificato per apportare modifiche globali sul server Nginx.
– / etc / nginx / sites-available/: È la directory in cui si memorizzano i blocchi del server per sito. Tutti i blocchi server sono in questa cartella. Un collegamento simbolico li collegherà alla directory abilitata per i siti. Se elenchiamo il contenuto di questo direttore, dovremmo vedere il blocco server che abbiamo creato e il blocco server Nginx predefinito.
–/etc/nginx/ sites-enabled/: I blocchi del server abilita per sito esistono in questa directory. Sono collegati ai file di configurazione effettivi nella directory sites-available.
– / etc / nginx / snippets/: La directory in cui si memorizzano frammenti di configurazione che possono essere inclusi in altre configurazioni, ad esempio frammenti di configurazione ripetitivi.il nostro sito utilizza cookie tecnici e di terze parti.log: questo file registra ogni richiesta che colpisce il tuo server, a meno che tu non abbia configurato Nginx per archiviare in un altro file o fare qualcos’altro.
– /var/log/nginx / errore.log: Questo file registra tutti gli errori Nginx. Questo è dove si arriva a risolvere i problemi quando il server non è in esecuzione come previsto.
Conclusione
Siamo arrivati alla fine del viaggio. Hai installato Nginx su Ubuntu 18.04, firewall configurati, blocchi server configurati e assicurato i siti sono accessibili nel browser. Felicitazioni! Ora sta a te capire quali contenuti vuoi servire ai tuoi utenti.
Calcolo felice!