Visas žingsnis po žingsnio vadovas, kaip įdiegti ir nustatyti „Nginx“ žiniatinklio serverį „Ubuntu 20.04“ sistemoje
„Nginx“ yra atvirojo kodo ir populiarus atvirkštinio tarpinio serverio žiniatinklio serveris, prieinamas keliose platformose. Programinę įrangą sukūrė Igoris Sysojevas kaip C10K problemos sprendimas ir pirmą kartą išleistas 2004 m. C10K problema yra dešimties tūkstančių klientų valdymo vienu metu problema, kuri 2000-ųjų pradžioje nebuvo lengva.
Šiame vadove apžvelgsime, kaip įdiegti ir nustatyti „Nginx“ Ubuntu 20.04 LTS.
Būtinos sąlygos
Sistema su įdiegta Ubuntu 20.04 ir a sudo
Vartotojas. Be to, neturite turėti jokio kito žiniatinklio serverio, pvz., „Apache“, veikiančio 80 arba 443 prievade.
Nginx diegimas
„Nginx“ yra „Ubuntu 20.04“ saugykloje ir apt
Jai įdiegti galima naudoti paketų tvarkyklę. Taigi, norėdami įdiegti „Nginx“, atidarykite terminalą naudodami ctrl+alt+t
ir paleisti:
sudo apt naujinimas ir sudo apt diegimas nginx
Diegimas netrukus bus baigtas ir Nginx demonas automatiškai pradės veikti fone. Taigi, norėdami patikrinti „Nginx“ būseną, paleiskite:
sudo systemctl būsena nginx
Paleidę aukščiau pateiktą komandą, turėtumėte gauti „Nginx“ būseną kaip aktyvus (bėgantis)
žalia, kaip parodyta žemiau.
Ubuntu ugniasienės (UFW) konfigūravimas
Pagal numatytuosius nustatymus išeinantys prievadai HTTP (80) ir HTTPS (443) yra uždaryti Ubuntu 20.04. Be to, numatytasis ugniasienės demonas ufw
yra išjungtas, nes visi prievadai yra uždaryti.
Taigi, norėdami pasiekti Nginx serverį iš kitų sistemų, turėsite įjungti ufw
ir tinkamai jį nustatykite, kad būtų leidžiamas srautas prievade 80
ir 443
. Prieš įjungdami ufw
, žinokite, kad jei „Nginx“ nustatote nuotoliniame serveryje, pirmiausia atnaujinkite ufw
taisykles leisti ssh
bėgant:
sudo ufw leisti ssh
Aukščiau pateikta komanda leidžia ssh
prieigą prie nuotolinio serverio, neleidžiant ssh
būsite užblokuoti nuo nuotolinio serverio.
Įjungus ssh
prieigą, galite įjungti ufw
ugniasienės demonas paleidžiant:
sudo ufw įgalinti
Dabar turite pakeisti ugniasienės taisykles, kad leistų HTTP ir HTTPS prievadus, kad „Nginx“ galėtų aptarnauti žiniatinklio srautą. Norėdami pakeisti taisykles, paleiskite:
sudo ufw leidžia „Nginx Full“
Nginx pilnas
leidžia HTTP ir HTTPS prievadus įeinančiam ir išeinančiam srautui iš visų IP adresų.
Po to patikrinkite, ar taisyklės tinkamai pridėtos ufw
ugniasienė paleisdami komandą:
sudo ufw būsena
Aukščiau pateikta komanda išves taisykles, kurias įtraukėme ufw
ugniasienės demonas.
Prisijungimas prie Nginx serverio
Dabar, kai įdiegėme „Nginx“ ir sukonfigūravome ufw
norėdami leisti įeinantį HTTP ir HTTPS žiniatinklio srautą, turėtumėte turėti galimybę pasiekti Nginx serverį naudodami serverio IP adresą.
Jei nežinote serverio IP adreso, naudokite toliau pateiktą komandą, kad lengvai jį gautumėte.
ip addr rodyti eth0 | grep inet | awk '{ spausdinti $2; }' | sed 's/\/.*$//'
Kai gausite IP adresą, įklijuokite jį į savo naršyklę ir paspauskite Enter.
//your-server-ip
Jei viskas buvo tinkamai sukonfigūruota, turėtumėte matyti tinklalapį „Sveiki atvykę į nginx!“.
Nginx failai ir katalogai
Dabar, kai jūsų serveryje įdiegėme ir veikia „Nginx“. Pažvelkime į kai kuriuos svarbius Nginx failus ir katalogus, kuriuos turėsite naudoti norėdami konfigūruoti savo svetainę / žiniatinklio programą.
Web serverio turinys
Galite sukonfigūruoti bet kurią vietą, kuri bus jūsų serverio bloko šakninis katalogas. „Nginx“ numatytasis HTML yra tiesiogiai /var/www/html
, čia yra „pasveikinimo“ puslapis, kurį pasiekėme anksčiau.
Kitos vietos, kurios paprastai naudojamos kaip šakninis domenų katalogas, yra:
/namai//
/var/www/html/
/opt/
Nginx konfigūracijos failai
Visi Nginx konfigūracijos failai yra /etc/nginx
katalogas. Pažvelkime į kai kuriuos svarbius failus, kurių mums reikia norint nustatyti pagrindinį domeną.
/etc/nginx/nginx.conf
: Šiame faile yra visa konfigūracija, reikalinga norint paleisti Nginx./etc/nginx/sites-available/
: Šiame kataloge yra visa serverio bloko domenų konfigūracija, tačiau šiuo metu jis neįjungtas / neįdiegtas, todėl klientai nepasiekiami./etc/nginx/sites-enabled/
: Šiame kataloge yra šiuo metu aktyvūs / įgalinti domenai, kuriuos gali pasiekti klientai. Norėdami įjungti domeną, turime susieti domeno konfigūracijos failą išsvetainės – prieinamos
priesvetainės įgalintos
katalogas./etc/nginx/snippets
/: Šiame kataloge galime saugoti potencialiai pakartotinai naudojamus konfigūracijos segmentus. Tai leidžia sutaupyti daug laiko gamybos aplinkoje dėl to, kad konfigūracijos segmentus/blokus galima pakartotinai naudoti.
Serverio žurnalai
„Nginx“ registruoja įvykius / veiklą ir išsaugo juos žurnalo failuose /var/log/nginx
katalogas. „Nginx“ registruoja veiklą šiuose failuose:
/var/log/nginx/access.log
: Šis failas registruoja klientus, kurie prisijungė prie Nginx serverio. Išsami informacija apima kliento IP adresą, laiką ir datą, naršyklę, naudojamą prieigai prie serverio, ir OS./var/log/nginx/error.log
: Šis failas registruoja klaidas, su kuriomis susidūrė Nginx serveris veikiant.
Taigi, šiame skyriuje trumpai apžvelgėme kai kuriuos svarbius Nginx failus ir katalogus, kurių pakanka norint pradėti.
Serverio blokų nustatymas
Dabar, kai turime keletą pagrindinių žinių apie Nginx failus ir serverį, esame pasirengę nustatyti savo serverio bloką. Serverio blokai yra panašūs į „Apache“ virtualius pagrindinius kompiuterius.
Pažiūrėsime, kaip sukurti serverio bloką, ir parodysime, kaip naudosime example.com
kaip domenas kūrimo procese.
💡 Pakeiskite example.com
su savo domeno vardu.
Prieš pradėdami konfigūruoti serverio blokus, turime sukurti katalogą, kuris būtų pagrindinis svetainės turinio katalogas. Leiskite kurti /var/www/example.com/html
domeno naudojimo katalogas mkdir
komandą.
sudo mkdir -p /var/www/example.com/html
The -p
parinktis sukurs visus reikalingus pirminius katalogus. Tai yra, jis sukurs example.com
pirminis katalogas html
jei jo nėra.
Pakeiskite katalogo nuosavybės teisę naudodami $USER
aplinkos kintamasis:
sudo chown -R $USER:$USER /var/www/example.com/html
Tada sukurkite paprastą index.html
failą, kuris bus pasiekiamas apsilankius konfigūruojamame domene. Tai tik paaiškinimo tikslais.
nano /var/www/example.com/html/index.html
Įklijuokite šį turinį į failą, kurį ką tik sukūrėme serveryje.
Sveiki atvykę į example.com! Ei! Pavyzdys.com pasiekiamas!
Paspauskite ctrl+o
parašyti ir išsaugoti index.html
failą, tada paspauskite ctrl+x
išeiti nano
redaktorius.
Dabar pagaliau galime pereiti prie serverio bloko kūrimo, kad Nginx galėtų aptarnauti index.html
kai kuris vartotojas eina į example.com
. Taigi, norėdami sukurti serverio bloką, turime sukurti konfigūracijos failą pavadinimu example.com
in svetainės – prieinamos
katalogas. Norėdami tai padaryti, naudojame nano ir paleidžiame:
sudo nano /etc/nginx/sites-available/example.com
Tada įveskite arba nukopijuokite / įklijuokite šią konfigūraciją. Tada paspauskite ctrl+o
ir įveskite norėdami rašyti ir išsaugoti. Panašiai paspauskite ctrl+x
norėdami uždaryti nano redaktorių.
serveris { klausytis 80; klausyk [::]:80; serverio_vardas example.com www.example.com; root /var/www/example-domain.com/html; indeksas index.html; vieta / { try_files $uri $uri/ =404; } }
Aukščiau pateikta konfigūracija yra panaši į numatytąją serverio bloko konfigūraciją, mes pakeitėme šaknis
teiginį, kad nurodytų mūsų naują šakninį katalogą ir pakeistas serverio pavadinimas
į mūsų domeno vardą. Kol vieta{}
pareiškimas naudojamas kaip klaidų gaudymo pareiškimas, jei failai nerandami, ir klientui rodo 404 klaidą.
Tada galime įjungti savo serverio bloką, kad „Nginx“ veiktų example.com
internetiniai puslapiai. Norėdami įjungti serverio bloką, turime sukurti simbolinę nuorodą example.com
failas iš svetainės – prieinamos
į svetainės įgalintos
katalogas. Norėdami tai padaryti, paleiskite:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
Bus sukurta nuoroda svetainė įgalinta
katalogas ir dabar example.com
turėtų būti įjungtas. Dabar „Nginx“ serveryje įgalinti du serverių blokai, kurie atsakys į užklausą pagal klausyk
ir serverio_vardas
direktyvos išsaugotos example.com
serverio bloko konfigūracija.
Norėdami patikrinti, ar visi konfigūracijos failai yra teisingi ir ar nėra sintaksės klaidų, paleiskite:
sudo nginx -t
Dabar pagaliau iš naujo paleiskite „Nginx“, kad pritaikytumėte pakeitimus, vykdydami šią komandą:
sudo systemctl iš naujo paleiskite nginx
„Nginx“ dabar pradės aptarnauti jūsų serverio bloką, galite eiti į //jūsų domeno vardas
ir pamatysite savo tinklalapį tiesiogiai.
Pastaba: Kad anksčiau pateikta skiltis veiktų, turėsite nustatyti savo domeną ir jį pakeisti example.com
su savo domeno vardu. Be to, turėsite sukonfigūruoti savo domeno DNS, kad jis nurodytų jūsų Nginx serverio IP adresą.
Baigdami pažvelgėme į tai, kaip įdiegti „Nginx“, sukonfigūruoti ufw
leisti nuotoliniu būdu pasiekti Nginx serverį, prijungtą prie Nginx nuotoliniu būdu, susipažino su kai kuriais pagrindiniais Nginx failais ir katalogais ir išmoko nustatyti serverio bloką.
Norėdami sužinoti ir sužinoti daugiau apie Nginx, galbūt norėsite pamatyti Nginx wiki.