Kaip įdiegti „Nginx“ Ubuntu 20.04 LTS

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 prie svetainė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.