Kā instalēt Nginx operētājsistēmā Ubuntu 20.04 LTS

Pilns soli pa solim ceļvedis Nginx tīmekļa servera instalēšanai un iestatīšanai Ubuntu 20.04 sistēmā

Nginx ir atvērtā pirmkoda un populārs reversā starpniekservera tīmekļa serveris, kas pieejams vairākās platformās. Programmatūru izstrādāja Igors Sisojevs kā C10K problēmas risinājums un pirmo reizi tika izlaists 2004. gadā. C10K problēma ir desmit tūkstošu klientu vienlaicīgas apstrādes problēma, kas 2000. gadu sākumā nebija viegli.

Šajā apmācībā mēs aplūkojam, kā instalēt un iestatīt Nginx operētājsistēmā Ubuntu 20.04 LTS.

Priekšnoteikumi

Sistēma ar instalētu Ubuntu 20.04 un a sudo lietotājs. Turklāt jums nav nepieciešams neviens cits tīmekļa serveris, piemēram, Apache, kas darbojas portā 80 vai 443.

Nginx instalēšana

Nginx ir pieejams Ubuntu 20.04 repozitorijā un apt lai to instalētu, var izmantot pakotņu pārvaldnieku. Tātad, lai instalētu Nginx, atveriet termināli, izmantojot ctrl+alt+t un palaist:

sudo apt atjauninājums un sudo apt instalēšana nginx

Instalēšana drīz tiks pabeigta, un Nginx dēmons automātiski sāksies fonā. Tātad, lai pārbaudītu Nginx statusu, palaidiet:

sudo systemctl statuss nginx

Pēc iepriekš minētās komandas palaišanas jums vajadzētu iegūt Nginx statusu kā aktīvs (skriejošs) zaļā krāsā, kā redzams zemāk.

Ubuntu ugunsmūra (UFW) konfigurēšana

Pēc noklusējuma Ubuntu 20.04 izejošie porti HTTP (80) un HTTPS (443) ir slēgti. Turklāt noklusējuma ugunsmūra dēmons ufw ir atspējots, jo visi porti ir aizvērti.

Tādējādi, lai piekļūtu Nginx serverim no citām sistēmām, jums ir jāiespējo ufw un iestatiet to pareizi, lai atļautu trafiku ostā 80 un 443. Pirms iespējot ufw, ziniet, ka, ja iestatāt Nginx attālajā serverī, vispirms atjauniniet ufw noteikumus, kas jāatļauj ssh skrienot:

sudo ufw atļauj ssh

Iepriekš minētā komanda ļauj ssh piekļūt attālajam serverim, neatļaujot ssh jūs tiksiet bloķēts no attālā servera.

Pēc iespējošanas ssh piekļuvi, varat iespējot ufw ugunsmūra dēmons, palaižot:

sudo ufw iespējot

Tagad jums ir jāmaina ugunsmūra noteikumi, lai atļautu HTTP un HTTPS portus, lai Nginx varētu apkalpot tīmekļa trafiku. Lai mainītu noteikumus, palaidiet:

sudo ufw atļauj "Nginx Full"

Nginx pilna ļauj gan HTTP, gan HTTPS porti ienākošajai un izejošajai trafikai no visām IP adresēm.

Pēc tam pārbaudiet, vai noteikumi ir pareizi pievienoti ufw ugunsmūri, izpildot komandu:

sudo ufw statuss

Iepriekš minētā komanda izvadīs noteikumus, kuriem pievienojām ufw ugunsmūra dēmons.

Savienojuma izveide ar Nginx serveri

Tagad, kad esam instalējuši un konfigurējuši Nginx ufw lai atļautu ienākošo HTTP un HTTPS tīmekļa trafiku, jums vajadzētu būt iespējai piekļūt Nginx serverim, izmantojot servera IP adresi.

Ja nezināt servera IP adresi, izmantojiet tālāk norādīto komandu, lai to viegli izgūtu.

ip addr parādīt eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Kad esat saņēmis IP adresi, ielīmējiet to savā pārlūkprogrammā un nospiediet taustiņu Enter.

//jūsu-servera-ip

Ja viss ir konfigurēts pareizi, jums vajadzētu būt iespējai redzēt tīmekļa lapu “Laipni lūdzam nginx!”.

Nginx faili un direktoriji

Tagad, kad jūsu serverī ir instalēts un darbojas Nginx. Apskatīsim dažus svarīgos Nginx failus un direktorijus, kas jums būs jāizmanto, lai konfigurētu savu vietni/tīmekļa lietotni.

Web servera saturs

Varat konfigurēt jebkuru vietu, kuru vēlaties izmantot kā saknes direktoriju servera blokam. Nginx noklusējuma HTML ir tieši /var/www/html, tur atrodas sveiciena lapa, kurai piekļuvām iepriekš.

Citas atrašanās vietas, kas parasti tiek izmantotas kā domēnu saknes direktorijs, ir šādas:

  • /mājas//
  • /var/www/html/
  • /izvēlēties/

Nginx konfigurācijas faili

Visi Nginx konfigurācijas faili atrodas /etc/nginx direktoriju. Apskatīsim dažus svarīgus failus, kas mums nepieciešami, lai iestatītu pamata domēnu.

  • /etc/nginx/nginx.conf: šajā failā ir visa konfigurācija, kas nepieciešama, lai palaistu Nginx.
  • /etc/nginx/sites-available/: šajā direktorijā ir visa domēnu servera bloku konfigurācija, taču pašlaik tas nav iespējots/izvietots un tādējādi klientiem nav pieejams.
  • /etc/nginx/sites-enabled/: šajā direktorijā ir pašlaik aktīvie/iespējotie domēni, kuriem var piekļūt klienti. Lai iespējotu domēnu, mums ir jāsaista domēna konfigurācijas fails no vietnes-pieejamas uz iespējotas vietnes direktoriju.
  • /etc/nginx/snippets/: Šajā direktorijā mēs varam saglabāt potenciāli atkārtoti izmantojamus konfigurācijas segmentus. Tas ietaupa daudz laika ražošanas vidē, jo tas var padarīt konfigurācijas segmentus/blokus atkārtoti lietojamus.

Servera žurnāli

Nginx reģistrē notikumus/darbības un saglabā tos žurnālfailos /var/log/nginx direktoriju. Nginx reģistrē darbības šajos failos:

  • /var/log/nginx/access.log: šis fails reģistrē klientus, kuri ir piekļuvuši Nginx serverim. Sīkāka informācija ietver klienta IP adresi, laiku un datumu, pārlūkprogrammu, kas izmantota, lai piekļūtu serverim, un OS.
  • /var/log/nginx/error.log: šis fails reģistrē kļūdas, ar kurām Nginx serveris saskaras darbības laikā.

Tāpēc šajā sadaļā mēs esam īsi apskatījuši dažus svarīgus Nginx failus un direktorijus, kas ir pietiekami, lai sāktu.

Serveru bloku iestatīšana

Tagad, kad mums ir dažas pamatzināšanas par Nginx failiem un serveri, mēs esam gatavi izveidot savu servera bloku. Serveru bloki ir līdzīgi Apache virtuālajiem saimniekiem.

Mēs apskatīsim, kā izveidot servera bloku, un parādīsim, kā mēs to izmantosim example.com kā domēns izveides procesā.

💡 Nomainiet example.com ar savu domēna vārdu.

Pirms sākam konfigurēt servera blokus, mums ir jāizveido direktorijs, kas kalpos kā vietnes satura saknes direktorijs. Ļaujiet mums izveidot /var/www/example.com/html direktorijs domēna lietošanai mkdir komandu.

sudo mkdir -p /var/www/example.com/html

The -lpp opcija izveidos visus nepieciešamos vecāku direktorijus. Tas ir, tas radīs example.com vecāku direktoriju html ja tā neeksistē.

Mainiet direktorija īpašumtiesības ar $USER vides mainīgais:

sudo chown -R $LIETOTĀJS:$LIETOTĀJS /var/www/example.com/html

Pēc tam izveidojiet vienkāršu index.html fails, kuram tiks piekļūts, apmeklējot konfigurējamo domēnu. Tas ir paredzēts tikai paskaidrojuma nolūkā.

nano /var/www/example.com/html/index.html

Ielīmējiet tālāk norādīto saturu failā, ko tikko izveidojām serverī.

  Laipni lūdzam example.com! 

Yo! Vietne example.com ir pieejama!

Nospiediet ctrl+o rakstīt un saglabāt index.html failu un pēc tam nospiediet ctrl+x iziet nano redaktors.

Tagad beidzot mēs varam pāriet uz servera bloka izveidi, lai Nginx varētu apkalpot index.html kad kāds lietotājs dodas uz example.com. Tātad, lai izveidotu servera bloku, mums ir jāizveido konfigurācijas fails ar nosaukumu example.com iekšā vietnes-pieejamas direktoriju. Lai to izdarītu, mēs izmantojam nano un izpildām:

sudo nano /etc/nginx/sites-available/example.com

Pēc tam ierakstiet vai kopējiet/ielīmējiet tālāk norādīto konfigurāciju. Pēc tam nospiediet ctrl+o un ievadiet, lai rakstītu un saglabātu. Līdzīgi nospiediet ctrl+x lai aizvērtu nano redaktoru.

serveris {klausies 80; klausies [::]:80; servera_nosaukums example.com www.example.com; sakne /var/www/example-domain.com/html; indekss index.html; atrašanās vieta / { try_files $uri $uri/ =404; } }

Iepriekš minētā konfigurācija ir līdzīga noklusējuma servera bloka konfigurācijai, mēs esam mainījuši sakne paziņojumu, lai norādītu uz mūsu jauno saknes direktoriju, un mainīja servera_nosaukums uz mūsu domēna vārdu. Kamēr atrašanās vieta{} paziņojums kalpo kā kļūdu uztveršanas paziņojums, ja faili netiek atrasti, un klientam parāda kļūdu 404.

Tālāk mēs varam iespējot mūsu servera bloku, lai Nginx darbotos example.com tīmekļa lapas. Lai iespējotu mūsu servera bloku, mums ir jāizveido simboliskā saite example.com fails no vietnes-pieejamas uz iespējotas vietnes direktoriju. Lai to izdarītu, palaidiet:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled

Tiks izveidota saite vietne iespējota katalogs un tagad example.com jābūt iespējotai. Tagad mūsu Nginx serverī ir iespējoti divi serveru bloki, kas atbildēs uz pieprasījumu, pamatojoties uz klausies un servera_nosaukums direktīvas, kas saglabātas example.com servera bloka konfigurācija.

Lai pārbaudītu, vai visi konfigurācijas faili ir pareizi un vai nav sintakses kļūdu, palaidiet:

sudo nginx -t

Tagad beidzot restartējiet Nginx, lai piemērotu izmaiņas, izpildot šo komandu:

sudo systemctl restartējiet nginx

Nginx tagad sāks apkalpot jūsu servera bloku, varat doties uz //jūsu domēna nosaukums un skatiet savu tīmekļa lapu tiešraidē.

Piezīme: Lai iepriekš minētā sadaļa darbotos, jums būs jāiestata savs domēns un jāaizstāj example.com ar savu domēna vārdu. Tāpat jums būs jākonfigurē sava domēna DNS, lai norādītu uz jūsu Nginx servera IP adresi.

Noslēgumā mēs apskatījām, kā instalēt Nginx, konfigurēt ufw lai atļautu attālo piekļuvi Nginx serverim, kas ir savienots ar Nginx attālināti, iepazinās ar dažiem pamata Nginx failiem un direktorijiem un uzzināja, kā iestatīt servera bloku.

Lai uzzinātu un uzzinātu vairāk par Nginx, iespējams, vēlēsities skatīt Nginx wiki.