Kako instalirati Nginx na Ubuntu 20.04 LTS

Potpuni vodič korak po korak za instalaciju i postavljanje Nginx web poslužitelja na Ubuntu 20.04 sustav

Nginx je open-source i popularan reverse proxy web poslužitelj dostupan na više platformi. Softver je razvio Igor Sysoev kao rješenje za C10K problem i prvi put objavljen 2004. C10K problem je problem istovremenog rukovanja deset tisuća klijenata što nije bilo nimalo lako početkom 2000-ih.

U ovom vodiču ćemo pogledati kako instalirati i postaviti Nginx na Ubuntu 20.04 LTS.

Preduvjeti

Sustav s instaliranim Ubuntu 20.04 i a sudo korisnik. Osim toga, ne morate imati nijedan drugi web poslužitelj kao što je Apache koji radi na portu 80 ili 443.

Instalacija Nginxa

Nginx je dostupan u Ubuntu 20.04 spremištu i prikladan za instalaciju se može koristiti upravitelj paketa. Dakle, da biste instalirali Nginx, otvorite terminal pomoću ctrl+alt+t i pokrenite:

sudo apt update && sudo apt instaliraj nginx

Instalacija će se uskoro dovršiti i Nginx demon će se automatski pokrenuti u pozadini. Dakle, da biste provjerili status Nginxa, pokrenite:

sudo systemctl status nginx

Nakon pokretanja gornje naredbe trebali biste dobiti Nginx status kao aktivan (trči) zeleno kao što se vidi ispod.

Konfiguriranje Ubuntu vatrozida (UFW)

Prema zadanim postavkama, odlazni portovi HTTP (80) i HTTPS (443) zatvoreni su na Ubuntu 20.04. Dodatno, zadani firewall demon ufw je onemogućen jer su svi portovi zatvoreni.

Stoga, za pristup Nginx poslužitelju s drugih sustava, morat ćete omogućiti ufw i ispravno ga postaviti da omogući promet na luci 80 i 443. Prije nego što omogućite ufw, znajte da ako Nginx postavljate na udaljenom poslužitelju, prvo ažurirajte ufw pravila dopustiti ssh trčanjem:

sudo ufw dopustiti ssh

Gornja naredba omogućuje ssh pristup udaljenom poslužitelju, bez dopuštanja ssh bit ćete zaključani s udaljenog poslužitelja.

Nakon omogućavanja ssh pristup, možete omogućiti ufw firewall daemon pokretanjem:

sudo ufw omogućiti

Sada morate promijeniti pravila vatrozida kako biste dopustili HTTP i HTTPS portove kako bi Nginx mogao posluživati ​​web promet. Za promjenu pravila pokrenite:

sudo ufw dopusti 'Nginx Full'

Nginx pun omogućuje HTTP i HTTPS portove za dolazni i odlazni promet sa svih IP adresa.

Nakon toga provjerite jesu li pravila ispravno dodana ufw firewall pokretanjem naredbe:

sudo ufw status

Gornja naredba će prikazati pravila koja smo dodali ufw firewall daemon.

Povezivanje s Nginx poslužiteljem

Sada kada smo instalirali Nginx i konfigurirali ufw da biste dopustili dolazni HTTP i HTTPS web promet, trebali biste moći pristupiti Nginx poslužitelju korištenjem IP adrese poslužitelja.

Ako ne znate IP adresu poslužitelja, upotrijebite donju naredbu da je lako dohvatite.

ip addr prikaži eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Nakon što dobijete IP adresu, zalijepite je u svoj preglednik i pritisnite enter.

//your-server-ip

Ako je sve bilo ispravno konfigurirano, trebali biste moći vidjeti web stranicu 'Dobro došli u nginx!'.

Nginx datoteke i direktoriji

Sada kada imamo instaliran i pokrenut Nginx na vašem poslužitelju. Dopustite nam da pogledamo neke od važnih Nginx datoteka i direktorija koje ćete morati koristiti za konfiguriranje svoje web stranice/web aplikacije.

Sadržaj web poslužitelja

Možete konfigurirati bilo koju lokaciju za koju želite da bude vaš korijenski direktorij za vaš blok poslužitelja. Nginxov zadani HTML izravno je /var/www/html, tu se nalazi stranica 'dobrodošlice' kojoj smo ranije pristupili.

Ostale lokacije koje se obično koriste kao korijenski direktorij za domene uključuju:

  • /Dom//
  • /var/www/html/
  • /opt/

Nginx konfiguracijske datoteke

Sve Nginx konfiguracijske datoteke se nalaze u /etc/nginx imenik. Pogledajmo neke od važnih datoteka koje su nam potrebne za postavljanje osnovne domene.

  • /etc/nginx/nginx.conf: Ova datoteka sadrži svu konfiguraciju potrebnu za pokretanje Nginxa.
  • /etc/nginx/sites-available/: Ovaj direktorij ima sve serverske blok konfiguracije domena, ali trenutno nisu omogućeni/razmješteni i stoga nisu dostupni klijentima.
  • /etc/nginx/sites-enabled/: Ovaj imenik sadrži trenutno aktivne/omogućene domene kojima mogu pristupiti klijenti. Da bismo omogućili domenu, moramo povezati konfiguracijsku datoteku domene s stranice-dostupne prema web-mjesta omogućena imenik.
  • /etc/nginx/snippets/: U ovom direktoriju možemo pohraniti segmente konfiguracije koje se mogu ponovno koristiti. Štedi puno vremena u proizvodnom okruženju zbog činjenice da može segmente/blokove konfiguracije učiniti višekratnim.

Zapisnici poslužitelja

Nginx bilježi događaje/aktivnosti i pohranjuje ih u log datoteke u /var/log/nginx imenik. Nginx bilježi aktivnosti u ovim datotekama:

  • /var/log/nginx/access.log: Ova datoteka bilježi klijente koji su pristupili Nginx poslužitelju. Pojedinosti uključuju IP adresu klijenta, vrijeme i datum, preglednik koji se koristi za pristup poslužitelju i OS.
  • /var/log/nginx/error.log: Ova datoteka bilježi pogreške na koje je Nginx poslužitelj naišao tijekom rada.

Dakle, u ovom odjeljku ukratko smo pogledali neke od važnih Nginx datoteka i direktorija koji su dovoljni za početak.

Postavljanje blokova poslužitelja

Sada kada imamo neko osnovno znanje o Nginx datotekama i poslužitelju, spremni smo postaviti vlastiti blok poslužitelja. Blokovi poslužitelja slični su Apache virtualnim hostovima.

Pogledat ćemo kako stvoriti blok poslužitelja i demonstrirati kako ćemo ga koristiti primjer.com kao domena u procesu stvaranja.

💡 Zamijenite primjer.com s imenom vaše domene.

Prije nego počnemo konfigurirati blokove poslužitelja, moramo stvoriti direktorij koji će služiti kao korijenski direktorij za sadržaj web stranice. Pusti nas da stvaramo /var/www/example.com/html imenik za korištenje domene mkdir naredba.

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

The -str opcija će stvoriti sve potrebne roditeljske direktorije. Odnosno, stvorit će primjer.com roditeljski imenik za html ako ne postoji.

Promijenite vlasništvo nad imenikom pomoću $USER varijabla okoline:

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

Zatim stvorite jednostavan index.html datoteku kojoj će se pristupiti kada posjetite domenu koja se konfigurira. Ovo je samo u svrhu objašnjenja.

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

Zalijepite sljedeći sadržaj u datoteku koju smo upravo stvorili na poslužitelju.

  Dobrodošli na example.com! 

Yo! Primjer.com je dostupan!

Pritisnite ctrl+o za pisanje i spremanje index.html datoteku, a zatim pritisnite ctrl+x izaći nano urednik.

Sada konačno možemo prijeći na stvaranje bloka poslužitelja, tako da Nginx može poslužiti index.html kada neki korisnik ode na primjer.com. Dakle, da bismo stvorili blok poslužitelja, moramo napraviti konfiguracijsku datoteku pod nazivom primjer.com u stranice-dostupne imenik. Da bismo to učinili, koristimo nano i pokrećemo:

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

Zatim upišite ili kopirajte/zalijepite sljedeću konfiguraciju. Zatim pritisnite ctrl+o i unesite za pisanje i spremanje. Slično, pritisnite ctrl+x za zatvaranje nano uređivača.

poslužitelj { slušati 80; slušaj [::]:80; server_name example.com www.example.com; korijen /var/www/example-domain.com/html; indeks index.html; lokacija / { try_files $uri $uri/ =404; } }

Gornja konfiguracija slična je zadanoj konfiguraciji bloka poslužitelja, promijenili smo korijen izjavu da ukaže na naš novi korijenski direktorij i promijenio je ime_poslužitelja na naziv naše domene. Dok mjesto{} izjava služi kao naredba za hvatanje pogreške ako datoteke nisu pronađene i prikazuje grešku 404 klijentu.

Zatim možemo omogućiti blok našeg poslužitelja kako bi Nginx služio primjer.com Internet stranice. Da bismo omogućili naš blok poslužitelja, moramo stvoriti simboličku vezu primjer.com datoteka iz stranice-dostupne do web-mjesta omogućena imenik. Da biste to učinili, pokrenite:

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

Veza će biti kreirana u omogućeno na web mjestu imenik i sada primjer.com treba omogućiti. Sada imamo dva bloka poslužitelja omogućena na našem Nginx poslužitelju koji će odgovoriti na zahtjev na temelju slušati i ime_severa direktive spremljene u primjer.com konfiguracija bloka poslužitelja.

Da biste provjerili jesu li sve konfiguracijske datoteke ispravne i nema sintaktičke pogreške, pokrenite:

sudo nginx -t

Sada konačno ponovno pokrenite Nginx da biste primijenili promjene pokretanjem sljedeće naredbe:

sudo systemctl ponovno pokrenite nginx

Nginx će sada početi posluživati ​​vaš blok poslužitelja, možete ići na //naziv-vaše-domene i vidjeti svoju web stranicu uživo.

Bilješka: Da bi gornji odjeljak funkcionirao, morat ćete postaviti vlastitu domenu i zamijeniti je primjer.com s vlastitim imenom domene. Također, morat ćete konfigurirati DNS za svoju domenu da ukazuje na IP adresu vašeg Nginx poslužitelja.

Za kraj, pogledali smo kako instalirati Nginx, konfigurirati ufw kako bi se omogućio daljinski pristup Nginx poslužitelju, spojen na Nginx daljinski, upoznao se s nekim osnovnim Nginx datotekama i direktorijima te naučio kako postaviti blok poslužitelja.

Da biste saznali i naučili više o Nginxu, možda biste željeli vidjeti Nginx wiki.