Celoten vodnik po korakih za namestitev in nastavitev spletnega strežnika Nginx v sistemu Ubuntu 20.04
Nginx je odprtokodni in priljubljen spletni strežnik za povratni proxy, ki je na voljo na več platformah. Programsko opremo je razvil Igor Sysoev kot rešitev problema C10K in prvič izdan leta 2004. Problem C10K je problem hkratnega ravnanja z deset tisoč odjemalci, kar v zgodnjih 2000-ih ni bilo enostavno.
V tej vadnici si ogledamo, kako namestiti in nastaviti Nginx na Ubuntu 20.04 LTS.
Predpogoji
Sistem z nameščenim Ubuntu 20.04 in a sudo
uporabnik. Poleg tega ne potrebujete nobenega drugega spletnega strežnika, kot je Apache, ki deluje na vratih 80 ali 443.
Namestitev Nginxa
Nginx je na voljo v skladišču Ubuntu 20.04 in apt
Za namestitev lahko uporabite upravitelja paketov. Torej, če želite namestiti Nginx, odprite terminal z uporabo ctrl+alt+t
in teči:
sudo apt posodobi && sudo apt namestite nginx
Namestitev bo kmalu končana in demon Nginx se bo samodejno zagnal v ozadju. Torej, da preverite stanje Nginxa, zaženite:
sudo systemctl status nginx
Po zagonu zgornjega ukaza bi morali dobiti status Nginx kot aktivno (teče)
zeleno, kot je prikazano spodaj.
Konfiguriranje požarnega zidu Ubuntu (UFW)
Privzeto sta odhodna vrata HTTP (80) in HTTPS (443) zaprta v Ubuntu 20.04. Poleg tega privzeti demon požarnega zidu ufw
je onemogočen, ker so vsa vrata zaprta.
Tako boste morali za dostop do strežnika Nginx iz drugih sistemov omogočiti ufw
in ga pravilno nastavite, da dovolite promet na pristanišču 80
in 443
. Preden omogočite ufw
, vedite, da če Nginx nastavljate na oddaljenem strežniku, najprej posodobite datoteko ufw
pravila dovoliti ssh
s tekom:
sudo ufw dovoli ssh
Zgornji ukaz omogoča ssh
dostop do oddaljenega strežnika, ne da bi dovolili ssh
zaklenjeni boste iz oddaljenega strežnika.
Po omogočanju ssh
dostop, lahko omogočite ufw
požarni zid z zagonom:
sudo ufw omogoči
Zdaj morate spremeniti pravila požarnega zidu, da omogočite vrata HTTP in HTTPS, tako da lahko Nginx služi spletni promet. Če želite spremeniti pravila, zaženite:
sudo ufw dovoli 'Nginx Full'
Nginx poln
omogoča vrata HTTP in HTTPS za dohodni in odhodni promet z vseh naslovov IP.
Po tem preverite, ali so pravila pravilno dodana ufw
požarni zid z zagonom ukaza:
sudo ufw status
Zgornji ukaz bo izpisal pravila, ki smo jim dodali ufw
požarni zid demon.
Povezava s strežnikom Nginx
Zdaj, ko smo namestili in konfigurirali Nginx ufw
da omogočite dohodni spletni promet HTTP in HTTPS, bi morali imeti možnost dostopa do strežnika Nginx z uporabo naslova IP strežnika.
Če ne poznate naslova IP strežnika, uporabite spodnji ukaz, da ga preprosto pridobite.
ip addr pokaži eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Ko dobite naslov IP, ga prilepite v brskalnik in pritisnite enter.
//your-server-ip
Če je bilo vse pravilno konfigurirano, bi morali videti spletno stran »Dobrodošli v nginx!«.
Datoteke in imeniki Nginx
Zdaj, ko imamo Nginx nameščen in deluje na vašem strežniku. Oglejmo si nekaj pomembnih datotek in imenikov Nginx, ki jih boste morali uporabiti za konfiguracijo svojega spletnega mesta/spletne aplikacije.
Vsebina spletnega strežnika
Konfigurirate lahko katero koli lokacijo, za katero želite, da bo vaš korenski imenik za vaš strežniški blok. Nginxov privzeti HTML neposredno je /var/www/html
, tam se nahaja stran »dobrodošli«, do katere smo dostopali prej.
Druge lokacije, ki se običajno uporabljajo kot korenski imenik za domene, vključujejo:
/domov//
/var/www/html/
/opt/
Konfiguracijske datoteke Nginx
Vse konfiguracijske datoteke Nginx se nahajajo v /etc/nginx
imenik. Oglejmo si nekaj pomembnih datotek, ki jih potrebujemo za nastavitev osnovne domene.
/etc/nginx/nginx.conf
: Ta datoteka vsebuje vso konfiguracijo, potrebno za zagon Nginxa./etc/nginx/sites-available/
: Ta imenik ima vso konfiguracijo strežniških blokov domen, vendar trenutno ni omogočen/razporejen in zato ni dostopen odjemalcem./etc/nginx/sites-enabled/
: Ta imenik vsebuje trenutno aktivne/omogočene domene, ki so dostopne odjemalcem. Da omogočimo domeno, moramo povezati konfiguracijsko datoteko domene izspletna mesta so na voljo
naomogočena spletna mesta
imenik./etc/nginx/snippets
/: V tem imeniku lahko shranimo segmente konfiguracije, ki jih je mogoče ponovno uporabiti. Prihrani veliko časa v produkcijskem okolju zaradi dejstva, da lahko segmente/bloke konfiguracije naredi ponovno uporabne.
Dnevniki strežnika
Nginx beleži dogodke/dejavnosti in jih shranjuje v dnevniške datoteke v /var/log/nginx
imenik. Nginx beleži dejavnosti v teh datotekah:
/var/log/nginx/access.log
: Ta datoteka beleži odjemalce, ki so dostopali do strežnika Nginx. Podrobnosti vključujejo naslov IP odjemalca, čas in datum, brskalnik, ki se uporablja za dostop do strežnika, in operacijski sistem./var/log/nginx/error.log
: Ta datoteka beleži napake, na katere naleti strežnik Nginx med delovanjem.
V tem razdelku smo si torej na kratko ogledali nekatere pomembne datoteke in imenike Nginx, ki so dovolj za začetek.
Nastavitev strežniških blokov
Zdaj, ko imamo nekaj osnovnega znanja o datotekah in strežniku Nginx, smo pripravljeni nastaviti svoj lasten strežniški blok. Strežniški bloki so podobni navideznim gostiteljem Apache.
Pogledali bomo, kako ustvariti blok strežnika in demonstrirati, kako ga bomo uporabili example.com
kot domena v procesu ustvarjanja.
💡 Zamenjaj example.com
z imenom vaše domene.
Preden začnemo konfigurirati strežniške bloke, moramo ustvariti imenik, ki bo služil kot korenski imenik za vsebino spletnega mesta. Naj ustvarjamo /var/www/example.com/html
imenik za uporabo domene mkdir
ukaz.
sudo mkdir -p /var/www/example.com/html
The -str
možnost bo ustvarila vse potrebne nadrejene imenike. To pomeni, da bo ustvaril example.com
nadrejeni imenik za html
če ne obstaja.
Spremenite lastništvo imenika z $USER
spremenljivka okolja:
sudo chown -R $USER:$USER /var/www/example.com/html
Nato ustvarite preprosto index.html
datoteko, do katere boste dostopali, ko obiščete konfigurirano domeno. To je samo v pojasnjevalni namen.
nano /var/www/example.com/html/index.html
Prilepite naslednjo vsebino v datoteko, ki smo jo pravkar ustvarili na strežniku.
Dobrodošli na example.com! Joj! Primer.com je dostopen!
Pritisnite ctrl+o
za pisanje in shranjevanje index.html
datoteko in nato pritisnite ctrl+x
za izstop nano
urednik.
Zdaj lahko končno preidemo na ustvarjanje strežniškega bloka, tako da lahko Nginx služi index.html
ko nek uporabnik obišče example.com
. Za ustvarjanje strežniškega bloka moramo narediti konfiguracijsko datoteko z imenom example.com
v spletna mesta so na voljo
imenik. Za to uporabimo nano in zaženemo:
sudo nano /etc/nginx/sites-available/example.com
Nato vnesite ali kopirajte/prilepite naslednjo konfiguracijo. Nato pritisnite ctrl+o
in vnesite za pisanje in shranjevanje. Podobno pritisnite ctrl+x
da zaprete urejevalnik nano.
strežnik { poslušaj 80; poslušaj [::]:80; ime_strežnika example.com www.example.com; root /var/www/example-domain.com/html; indeks index.html; lokacija / {try_files $uri $uri/ =404; } }
Zgornja konfiguracija je podobna privzeti konfiguraciji bloka strežnika, spremenili smo koren
izjavo, da pokaže na naš novi korenski imenik in spremeni datoteko ime_strežnika
na naše ime domene. Medtem ko je lokacija{}
stavek služi kot stavek za lovljenje napak, če datoteke niso najdene, in odjemalcu prikaže napako 404.
Nato lahko omogočimo naš blok strežnika, tako da bo Nginx služil example.com
spletne strani. Za omogočanje našega strežniškega bloka moramo ustvariti simbolno povezavo za example.com
datoteko iz spletna mesta so na voljo
do omogočena spletna mesta
imenik. Če želite to narediti, zaženite:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
Povezava bo ustvarjena v omogočeno spletno mesto
imenik in zdaj example.com
mora biti omogočeno. Zdaj imamo na našem strežniku Nginx omogočena dva strežniška bloka, ki se bosta odzvali na zahtevo na podlagi poslušaj
in sever_name
direktive, shranjene v example.com
konfiguracija blokov strežnika.
Če želite preveriti, ali so vse konfiguracijske datoteke pravilne in ni prisotna sintaksična napaka, zaženite:
sudo nginx -t
Zdaj končno znova zaženite Nginx, da uveljavite spremembe, tako da zaženete naslednji ukaz:
sudo systemctl znova zaženi nginx
Nginx bo zdaj začel služiti vašemu bloku strežnika, lahko obiščete //ime-vaše-domene
in si oglejte svojo spletno stran v živo.
Opomba: Da bo zgornji razdelek deloval, boste morali nastaviti svojo domeno in jo zamenjati example.com
z lastnim imenom domene. Prav tako boste morali konfigurirati DNS za svojo domeno, da kaže na naslov IP vašega strežnika Nginx.
Za zaključek smo si ogledali, kako namestiti Nginx, konfigurirati ufw
za omogočanje oddaljenega dostopa do strežnika Nginx, povezan z Nginxom na daljavo, se seznanil z nekaterimi osnovnimi datotekami in imeniki Nginx ter se naučil, kako nastaviti strežniški blok.
Če želite izvedeti in izvedeti več o Nginxu, si oglejte wiki Nginx.