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 lasite-uri disponibile
lasite-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.