Nginx Ubuntu peal: paigaldamine, seadistamine ja optimeerimine algajatele

1. Sissejuhatus

Paljud soovivad kasutada Nginxi Ubuntu peal, kuid esimest korda sellega kokku puutudes võib olla keeruline teada, kust alustada. See artikkel selgitab samm-sammult Nginxi installimist, seadistamist ja haldamist Ubuntu keskkonnas, isegi algajatele arusaadavalt.

Mis on Nginx?

Nginx (hääldatakse “engine-x”) on tuntud kui suure jõudlusega HTTP-server ja pöördproksi server. Tänu oma kergusele ja paindlikkusele kasutatakse seda veebiserverites ja rakendustes üle maailma. Eriti iseloomulik on selle struktuur, mis talub suurt liiklust.

Nginxi kasutamise eelised Ubuntus

Ubuntu on populaarne Linuxi distributsioon ja sobib hästi Nginxiga. Kuna pakendihaldussüsteem (APT) on saadaval, on installimine ja uuendamine lihtne ning oodata on stabiilsust ja turvalisust.

Selle artikli lugemisel saate aru järgmistest asjadest:

  • Kuidas installida Nginxi Ubuntu peale
  • Põhilised seadistamise ja haldamise sammud
  • Jõudluse optimeerimine ja tõrkeotsing

Liigume edasi tegeliku töö juurde.

侍エンジニア塾

2. Nginxi installimise juhised Ubuntus

Nginxi käivitamiseks Ubuntus tuleb see esmalt õigesti installida. Siin selgitame installiprotsessi lihtsalt arusaadaval viisil.

Vajalike pakettide kontrollimine

Enne installimise alustamist veenduge, et teie süsteem oleks ajakohane. Käivitage järgmised käsud:

sudo apt update
sudo apt upgrade

Nginxi installimine

Nginxi installimiseks sisestage järgmine käsk:

sudo apt install nginx

See käsk laadib Nginxi Ubuntu APT-repositooriumist automaatselt alla ja installib.

Installimise kinnitamine

Installimise õnnestumise kontrollimiseks vaadake Nginxi olekut järgmise käsuga:

sudo systemctl status nginx

Kui väljundis kuvatakse “active (running)”, on installimine edukas.

Tulemüüri seadistamine

Ubuntu sisaldab UFW-d (Uncomplicated Firewall), mida saab kasutada Nginxi suhtluse lubamiseks.

sudo ufw allow 'Nginx Full'
sudo ufw enable

Nüüd on Nginx valmis töötama pordidel 80 (HTTP) ja 443 (HTTPS).

3. Nginxi põhiseadistus Ubuntus

Nginxi installimisest üksi ei piisa. Järgmisena teeme põhiseadistused, et Nginxi tõhusalt kasutada.

Konfiguratsioonifailide asukoht ja põhistruktuur

Nginxi peamised konfiguratsioonifailid asuvad järgmistes kohtades:

  • Põhiline konfiguratsioonifail: /etc/nginx/nginx.conf
  • Saidi-põhised konfiguratsioonifailid: kataloogis /etc/nginx/sites-available/

Põhimõtteliselt luuakse virtuaalhosti konfiguratsioonifail kataloogi sites-available ja seejärel luuakse sümboolne link kataloogi sites-enabled.

Virtuaalhosti seadistamine

Virtuaalhosti seadistamine võimaldab teil hallata mitut domeeni või projekti ühel serveril. Järgmises näites seadistame example.com.

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

Sisestage järgmine sisu:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

Pärast salvestamist aktiveerige seaded järgmiste käskudega:

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

SSL/TLS seadistamine

Turvalise suhtluse tagamiseks seadistage SSL/TLS-sertifikaadid. Saate hankida tasuta sertifikaate Let’s Encrypti abil.

Esmalt installige certbot:

sudo apt install certbot python3-certbot-nginx

Seejärel käivitage SSL-sertifikaadi hankimiseks ja automaatseks seadistamiseks järgmine käsk:

sudo certbot --nginx -d example.com -d www.example.com

Seadistage ka automaatne uuendamine, et sertifikaadid ei aeguks.

4. Nginxi käivitamine ja haldamine

Pärast Nginxi installimist ja põhiseadistamist peate õppima haldamistoimingud, nagu käivitamine, peatamine ja seadistuste muutmisel uuesti laadimine. See jaotis selgitab Nginxi haldamiseks vajalikke põhikäske ja kuidas tõrkeid lahendada.

Nginxi põhikäsud

Ubuntus haldate Nginxi olekut käsuga systemctl. Järgnevalt on toodud peamised käsud:

  1. Nginxi käivitamine
   sudo systemctl start nginx
  1. Nginxi peatamine
   sudo systemctl stop nginx
  1. Nginxi taaskäivitamine
    Suurte konfiguratsioonimuudatuste korral võib taaskäivitamine olla vajalik.
   sudo systemctl restart nginx
  1. Nginxi uuesti laadimine
    Konfiguratsioonifailide muutmisel saab neid rakendada ilma taaskäivitamiseta, teostades uuesti laadimise.
   sudo systemctl reload nginx
  1. Nginxi oleku kontrollimine
    Selleks, et kontrollida, kas see töötab korralikult, kasutage järgmist:
   sudo systemctl status nginx

Nginxi automaatse käivitamise seadistamine

Nginxi automaatse käivitamise lubamine välistab vajaduse see pärast süsteemi taaskäivitamist käsitsi käivitada.

  1. Automaatse käivitamise lubamine
   sudo systemctl enable nginx
  1. Automaatse käivitamise keelamine
    Vajadusel keelamiseks:
   sudo systemctl disable nginx

Logide kontrollimine ja tõrkeotsing

Kui Nginx ei tööta ootuspäraselt, kontrollige logisid, et tuvastada põhjus.

  1. Vealogide kontrollimine
    Vealogid on salvestatud järgmisse asukohta:
   sudo tail -f /var/log/nginx/error.log
  1. Juurdepääsulogide kontrollimine
    Siit saate kontrollida kliendipäringute sisu:
   sudo tail -f /var/log/nginx/access.log

Levinud probleemid ja lahendused

  1. Nginx ei käivitu
  • Põhjus: Võimalik, et konfiguratsioonifailis on viga.
  • Lahendus:
    bash sudo nginx -t
    Kontrollige selle käsuga konfiguratsioonifaili vigu ja parandage probleem.
  1. Muudatused ei rakendu
  • Põhjus: Uuesti laadimist või taaskäivitamist ei ole tehtud.
  • Lahendus:
    Pärast konfiguratsioonimuudatusi käivitage sudo systemctl reload nginx.
  1. Port ei ole avatud
  • Põhjus: Tulemüüri seaded.
  • Lahendus:
    bash sudo ufw allow 'Nginx Full'

Neid samme järgides saate Nginxi põhihaldust usaldusväärselt teostada.

5. Nginxi tulemüüri seadistamine ja turvalisuse suurendamine

Turvalisus on Nginxi opereerimisel äärmiselt oluline. See jaotis selgitab portide seadistamist Ubuntu tulemüüri (UFW) abil ja kuidas suurendada Nginxi turvalisust.

Portide avamine UFW abil

UFW (Uncomplicated Firewall) on Ubuntu standardvarustusse kuuluv tulemüüri tööriist. Nginxi korrektseks tööks on vaja avada pordid 80 (HTTP) ja 443 (HTTPS).

  1. Praeguse UFW oleku kontrollimine
   sudo ufw status
  1. Nginxi reeglite rakendamine
    Avage vajalikud pordid järgmise käsuga:
   sudo ufw allow 'Nginx Full'
  1. UFW aktiveerimine
    Kui tulemüür on keelatud, aktiveerige see:
   sudo ufw enable

Lisaseaded turvalisuse suurendamiseks

  1. Mittevajalike HTTP-meetodite keelamine
    Serveri turvalisuse suurendamiseks keelake mittevajalikud HTTP-meetodid. Lisage järgmised seaded Nginxi konfiguratsioonifaili:
   if ($request_method !~ ^(GET|POST|HEAD)$) {
       return 444;
   }
  1. Kataloogide loendi keelamine
    Selleks, et kataloogi sisu ei oleks avalikult nähtav, lisage konfiguratsioonifaili järgmine seade:
   autoindex off;
  1. SSL/TLS-i tugevdamine
    Tugeva krüpteerimismeetodi kasutamiseks lisage SSL-seadetesse järgmine:
   ssl_protocols TLSv1.2 TLSv1.3;
   ssl_prefer_server_ciphers on;
   ssl_ciphers HIGH:!aNULL:!MD5;

6. Nginxi jõudluse optimeerimine ja tõrkeotsing

Nginx on laialdaselt kasutatav suure jõudlusega veebiserver, kuid õige häälestamisega saab selle jõudlust veelgi parandada. See jaotis selgitab, kuidas parandada Nginxi jõudlust ja lahendada levinud probleeme.

Jõudluse optimeerimine

1. Töötajaprotsesside seadistamine

Nginx kasutab mitmeprotsessilist arhitektuuri ja jõudlust saab optimeerida, seadistades sobiva arvu töötajaprotsesse.

Redigeerige konfiguratsioonifaili /etc/nginx/nginx.conf:

worker_processes auto;

auto määramisel seadistatakse automaatselt optimaalne protsesside arv vastavalt serveri CPU-tuumade arvule.

2. Ühenduste arvu suurendamine töötajaprotsessi kohta

Vaikimisi on ühe töötajaprotsessi ühenduste arv piiratud. Selle väärtuse suurendamine parandab töötlemisvõimsust suure koormuse korral.

Kontrollige või lisage konfiguratsioonifaili järgmine rida:

worker_connections 1024;

3. HTTP/2 lubamine

HTTP/2 lubamine muudab brauseriga suhtluse tõhusamaks ja parandab veebisaidi laadimisaega.

Redigeerige faili /etc/nginx/sites-available/example.com ja muutke listen direktiivi järgmiselt:

listen 443 ssl http2;

Seejärel laadige Nginx uuesti:

sudo systemctl reload nginx

4. Sisu tihendamise seaded

Failide tihendamine ja edastamine vähendab andmemahtu ja parandab lehe laadimisaega.

Lisage või aktiveerige konfiguratsioonifailis järgmine:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

5. Vahemälu seadistamine

Staatiliste failide vahemälu seadistamine vähendab samadele ressurssidele tehtavate päringute arvu.

Lisage serveriplokki järgmine:

location ~* .(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
    expires 30d;
    access_log off;
}

Levinud probleemide lahendamine

1. Suure koormuse korral on päringute töötlemine aeglane

  • Põhjus
    Töötajaprotsessid või ühenduste arv on sageli valesti seadistatud.
  • Lahendus
  • Reguleerige töötajaprotsesside ja töötajate ühenduste arvu.
  • Vajadusel võtke kasutusele koormuse jaotamine (load balancer).

2. Kuvatakse veakood 403 Forbidden

  • Põhjus
  • Nginxi konfiguratsioonifailis on root direktiivi tee vale.
  • Kataloogide või failide õigused on valed.
  • Lahendus
  • Kontrollige konfiguratsioonifailis root direktiivi ja määrake õige tee.
  • Parandage õigused järgmise käsuga:
    bash sudo chmod -R 755 /var/www/example.com/html sudo chown -R www-data:www-data /var/www/example.com/html

3. Server aegub

  • Põhjus
  • Kliendipäringute töötlemiseks kulub liiga kaua aega.
  • Lahendus
    Reguleerige ajalõpu aega. Lisage või muutke konfiguratsioonifailis järgmist:
  proxy_read_timeout 300;
  proxy_connect_timeout 300;
  proxy_send_timeout 300;

4. Nginxi taaskäivitamisel ilmneb viga

  • Põhjus
    Konfiguratsioonifailis on viga.
  • Lahendus
    Enne seadistuste salvestamist teostage süntaksi kontroll järgmise käsuga:
  sudo nginx -t

Nende sammude järgimine aitab teil maksimeerida Nginxi jõudlust ja lahendada levinud probleeme.

7. Kokkuvõte ja järgmised sammud

Selles artiklis selgitasime üksikasjalikult, kuidas Nginxi Ubuntus installida, tõhusalt seadistada ja hallata. Vaatame üle iga jaotise sisu ja anname nõu järgmiste sammude jaoks.

Kogu artikli ülevaade

1. Nginxi installimise juhised Ubuntus

  • Õppisime, kuidas valmistada ette vajalikud paketid ja installida Nginx APT abil.
  • Seadistasime tulemüüri (UFW), et lubada Nginxi suhtlust.

2. Põhiseadistus

  • Saime aru konfiguratsioonifailide asukohast ja struktuurist ning õppisime virtuaalhostide ja SSL/TLS-i seadistamise samme.
  • Omandasime praktilised seadistamise meetodid tegelike koodinäidete kaudu.

3. Käivitamine ja haldamine

  • Mõistsime põhilisi toiminguid, nagu käivitamine, peatamine, taaskäivitamine ja uuesti laadimine.
  • Õppisime ka logide kontrollimise meetodeid, mis on kasulikud tõrkeotsinguks.

4. Tulemüüri seadistamine ja turvalisuse suurendamine

  • Rakendasime turvalisuse suurendamise meetmeid, nagu portide avamine UFW abil ja mittevajalike HTTP-meetodite keelamine.

5. Jõudluse optimeerimine ja tõrkeotsing

  • Selgitasime konkreetseid optimeerimismeetodeid, nagu töötajaprotsesside optimeerimine, HTTP/2 lubamine ja vahemälu seadistamine.
  • Õppisime levinud probleemide lahendamise viise, et saavutada stabiilsem töö.

Järgmised sammud

Selles artiklis tutvustatud põhiliste installi- ja seadistusjuhiste omandamisega peaksite olema saavutanud Nginxi käivitamise alused Ubuntus. Edasiste oskuste süvendamiseks kaaluge järgmisi samme:

  1. Täiustatud Nginxi seadistuste õppimine
  • Õppige üksikasjalikke koormuse jaotamise (load balancing) ja pöördproksi seadistusi, et saavutada kõrgem haldustase.
  • Proovige uusi kasutusjuhtumeid, kasutades mooduleid (nt Nginxi RTMP-moodul).
  1. Turvalisuse edasine tugevdamine
  • Kaaluge veebirakenduste tulemüüri (WAF) rakendamist või turvalisusega seotud Nginxi moodulite kasutamist.
  1. Automaatika juurutamine
  • Töö efektiivsuse parandamiseks õppige, kuidas automatiseerida Nginxi juurutamist ja haldamist, kasutades Ansible’it või Dockerit.
  1. Monitooringu- ja optimeerimistööriistade kasutamine
  • Juurutage monitooringutööriistad nagu Prometheus ja Grafana, et visualiseerida Nginxi jõudlust reaalajas.

Lõpetuseks

Nginx on kiire ja paindlik veebiserver, mis õigesti kasutades suudab toetada paljusid kasutusjuhtumeid. Kasutage selles artiklis omandatud teadmisi ja rakendage neid oma projektides.

Kui tulevikus tekib uusi küsimusi või vajadusi, on soovitatav pöörduda Nginxi ametliku dokumentatsiooni või kogukonna ressursside poole. Loodan, et see artikkel on teile abiks veebiserveri haldamisel!