Cum se instalează Nginx pe Ubuntu 20.04 LTS

Ghid complet pas cu pas pentru instalarea și configurarea unui server web Nginx pe un sistem Ubuntu 20.04

Nginx este un server web cu sursă deschisă și popular proxy invers, disponibil pe mai multe platforme. Software-ul a fost dezvoltat de Igor Sysoev ca o soluție la problema C10K și lansată pentru prima dată în 2004. Problema C10K este problema de a gestiona zece mii de clienți concomitent, ceea ce nu a fost destul de ușor la începutul anilor 2000.

În acest tutorial, ne uităm la cum să instalați și să configurați Nginx pe Ubuntu 20.04 LTS.

Cerințe preliminare

Un sistem cu Ubuntu 20.04 instalat și un sudo utilizator. În plus, nu trebuie să aveți niciun alt server web, cum ar fi Apache, care rulează pe portul 80 sau 443.

Instalarea Nginx

Nginx este disponibil în depozitul Ubuntu 20.04 și apt Managerul de pachete poate fi folosit pentru a-l instala. Deci, pentru a instala Nginx, deschideți terminalul folosind ctrl+alt+t și fugi:

sudo apt update && sudo apt install nginx

Instalarea se va finaliza în curând și demonul Nginx va porni automat în fundal. Deci, pentru a verifica starea lui Nginx, rulați:

sudo systemctl status nginx

După ce rulați comanda de mai sus, ar trebui să obțineți starea Nginx ca activ(a alerga) în verde, așa cum se vede mai jos.

Configurarea Ubuntu Firewall (UFW)

În mod implicit, porturile de ieșire HTTP (80) și HTTPS (443) sunt închise pe Ubuntu 20.04. În plus, demonul firewall implicit ufw este dezactivat deoarece toate porturile sunt închise.

Astfel, pentru a accesa serverul Nginx de pe alte sisteme, va trebui să activați ufw și configurați-l corect pentru a permite traficul în port 80 și 443. Înainte de a activa ufw, știți că, dacă configurați Nginx pe un server la distanță, mai întâi actualizați ufw reguli care să permită ssh rulând:

sudo ufw permit ssh

Comanda de mai sus permite ssh acces la serverul de la distanță, fără a permite ssh veți fi blocat de serverul de la distanță.

După activare ssh acces, puteți activa ufw daemon firewall rulând:

sudo ufw enable

Acum, trebuie să modificați regulile paravanului de protecție pentru a permite porturile HTTP și HTTPS, astfel încât Nginx să poată servi traficul web. Pentru a schimba regulile, rulați:

sudo ufw permit „Nginx Full”

Nginx complet permite atât porturile HTTP, cât și HTTPS pentru traficul de intrare și de ieșire de la toate adresele IP.

După aceea, verificați dacă regulile sunt adăugate corect ufw firewall rulând comanda:

sudo ufw status

Comanda de mai sus va afișa regulile la care am adăugat ufw daemon firewall.

Conectarea la serverul Nginx

Acum că am instalat și configurat Nginx ufw pentru a permite traficul web HTTP și HTTPS, ar trebui să puteți accesa serverul Nginx utilizând adresa IP a serverului.

Dacă nu cunoașteți adresa IP a serverului, utilizați comanda de mai jos pentru a o prelua cu ușurință.

adresă ip arată eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Odată ce ați primit adresa IP, inserați-o în browser și apăsați Enter.

//ip-ul-server-voastră

Dacă totul a fost configurat corect, ar trebui să puteți vedea pagina web „Bine ați venit la nginx!”.

Fișiere și directoare Nginx

Acum că avem Nginx instalat și rulează pe serverul dvs. Să aruncăm o privire la câteva dintre fișierele și directoarele importante Nginx pe care va trebui să le utilizați pentru a vă configura site-ul web/aplicația web.

Conținutul serverului web

Puteți configura orice locație în care doriți să fie directorul rădăcină pentru blocul dvs. de server. HTML implicit al lui Nginx este direct /var/www/html, este locul în care se află pagina „bun venit” pe care am accesat-o mai devreme.

Alte locații care sunt de obicei folosite ca director rădăcină pentru domenii includ:

  • /Acasă//
  • /var/www/html/
  • /opta/

Fișierele de configurare Nginx

Toate fișierele de configurare Nginx se află în /etc/nginx director. Să ne uităm la câteva dintre fișierele importante de care avem nevoie pentru a configura un domeniu de bază.

  • /etc/nginx/nginx.conf: Acest fișier conține toată configurația necesară pentru a rula Nginx.
  • /etc/nginx/sites-available/: Acest director are toate configurațiile de bloc de server ale domeniilor, dar în prezent nu sunt activate/implementate și, prin urmare, nu sunt accesibile de către clienți.
  • /etc/nginx/sites-enabled/: Acest director deține domenii active/activate în prezent accesibile de către clienți. Pentru a activa un domeniu, trebuie să conectăm fișierul de configurare a domeniului de la site-uri disponibile la site-uri activate director.
  • /etc/nginx/snippets/: În acest director, putem stoca segmente de configurație potențial reutilizabile. Economisește mult timp în mediul de producție datorită faptului că poate face reutilizabile segmente/blocuri de configurare.

Jurnalele serverului

Nginx înregistrează evenimentele/activitățile și le stochează în fișiere jurnal în fișierul /var/log/nginx director. Nginx înregistrează activitățile din aceste fișiere:

  • /var/log/nginx/access.log: Acest fișier înregistrează clienții care au accesat serverul Nginx. Detaliile includ adresa IP a clientului, ora și data, browserul utilizat pentru a accesa serverul și sistemul de operare.
  • /var/log/nginx/error.log: Acest fișier înregistrează erorile întâlnite de serverul Nginx în timpul rulării.

Deci, în această secțiune, am analizat pe scurt câteva dintre fișierele și directoarele importante Nginx care sunt suficiente pentru a începe.

Configurarea blocurilor de server

Acum că avem câteva cunoștințe de bază despre fișierele și serverul Nginx, suntem gata să ne instalăm propriul bloc de server. Blocurile de server sunt similare cu gazdele virtuale Apache.

Vom vedea cum să creăm un bloc de server și să demonstrăm că vom folosi exemplu.com ca domeniu în procesul de creaţie.

💡 Înlocuiește exemplu.com cu numele dvs. de domeniu.

Înainte de a începe configurarea blocurilor de server, trebuie să creăm un director care să servească drept director rădăcină pentru conținutul site-ului web. Să creăm /var/www/example.com/html director pentru utilizarea domeniului mkdir comanda.

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

The -p opțiunea va crea toate directoarele părinte necesare. Adică va crea exemplu.com un director părinte către html daca nu exista.

Schimbați proprietarul directorului cu ajutorul $USER variabilă de mediu:

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

Apoi, creați un simplu index.html fișier care va fi accesat atunci când vizitați domeniul în curs de configurare. Acest lucru este doar cu scop explicativ.

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

Lipiți următorul conținut în fișierul pe care tocmai l-am creat pe server.

  Bun venit pe example.com! 

Eu! Exemplul.com este accesibil!

presa ctrl+o pentru a scrie și a salva index.html fișier și apoi apăsați ctrl+x a iesi nano editor.

Acum, în sfârșit, putem trece la crearea unui bloc de server, astfel încât Nginx să poată servi index.html când un utilizator merge la exemplu.com. Deci, pentru a crea un bloc de server, trebuie să facem un fișier de configurare numit exemplu.com în site-uri disponibile director. Pentru a face acest lucru, folosim nano și rulăm:

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

Și apoi, tastați sau copiați/lipiți următoarea configurație. Apoi apăsați ctrl+o și intrați pentru a scrie și salva. În mod similar, apăsați ctrl+x pentru a închide editorul nano.

server { asculta 80; asculta [::]:80; nume_server example.com www.example.com; rădăcină /var/www/example-domain.com/html; index index.html; locație / { try_files $uri $uri/ =404; } }

Configurația de mai sus este similară cu configurația implicită a blocului serverului, noi am schimbat-o rădăcină declarație pentru a indica noul nostru director rădăcină și a schimbat numele serverului la numele nostru de domeniu. In timp ce Locație{} declarația servește ca declarație de captură de eroare dacă fișierele nu sunt găsite și afișează eroarea 404 pentru client.

Apoi, putem activa blocul serverului nostru, astfel încât Nginx să servească exemplu.com pagini web. Pentru a activa blocul serverului, trebuie să creăm un link simbolic al exemplu.com dosar de la site-uri disponibile la site-uri activate director. Pentru a face acest lucru, rulați:

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

Un link va fi creat în activat pentru site director și acum exemplu.com ar trebui activat. Acum avem două blocuri de server activate pe serverul nostru Nginx, care vor răspunde la cerere în funcție de asculta și nume_server directivele salvate în exemplu.com configurarea blocului serverului.

Pentru a verifica dacă toate fișierele de configurare sunt corecte și nu există nicio eroare de sintaxă, rulați:

sudo nginx -t

Acum, în sfârșit, reporniți Nginx pentru a aplica modificările rulând următoarea comandă:

sudo systemctl reporniți nginx

Nginx va începe să servească blocul dvs. de server acum, puteți accesa //numele-domeniul-vou și vedeți-vă pagina web live.

Notă: Pentru ca secțiunea de mai sus să funcționeze, va trebui să vă configurați propriul domeniu și să îl înlocuiți exemplu.com cu propriul nume de domeniu. De asemenea, va trebui să configurați DNS pentru domeniul dvs. pentru a indica adresa IP a serverului dvs. Nginx.

Pentru a încheia, ne-am uitat la modul de instalare și configurare Nginx ufw pentru a permite accesul de la distanță la serverul Nginx, conectat la Nginx de la distanță, s-a familiarizat cu câteva fișiere și directoare de bază Nginx și a învățat cum să configurați un bloc de server.

Pentru a afla și a afla mai multe despre Nginx, poate doriți să vedeți Nginx wiki.