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 novietnes-pieejamas
uziespē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.