Kako namestiti Nginx na Ubuntu 20.04 LTS

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 iz spletna mesta so na voljo na omogoč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.