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 sstranice-dostupne
premaweb-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.