Pereiti prie pagrindinio turinio

[Ubuntu/Debian] Kaip įdiegti Nginx

Šioje pamokoje parodysime, kaip įdiegti Nginx Ubuntu/Debian sistemoje ir kaip naudoti pagrindines jo valdymo funkcijas.

Atnaujinta vakar

Nginx yra vienas populiariausių web serverių pasaulyje. Jis naudoja įvykiais paremtą architektūrą, todėl gali apdoroti kelias užklausas vienoje gijoje. Dėl to Nginx naudoja mažiau resursų nei Apache. Jį taip pat galima naudoti kaip atvirkštinį tarpinį serverį.

Diegimas

Nginx galite įdiegti iš numatytųjų saugyklų naudodami apt paketų valdymo sistemą. Pirmiausia patikrinkite ir atnaujinkite vietinius paketus serveryje:

sudo apt update
sudo apt upgrade

Įdiekite Nginx:

sudo apt install nginx

Web serverio būsenos tikrinimas

Norėdami įsitikinti, kad Nginx paslauga veikia, patikrinkite ją per init sistemą:

systemctl status nginx

Rezultatas:

Kitas būdas patikrinti, ar Nginx veikia, yra naršyklėje atidaryti serverio IP adresą arba hostname:

http://your_server_ip

Nginx valdymo komandos

Norėdami sustabdyti Nginx, naudokite:

sudo systemctl stop nginx

Norėdami paleisti Nginx, naudokite:

sudo systemctl start nginx

Norėdami sustabdyti ir vėl paleisti Nginx, naudokite:

sudo systemctl restart nginx

Norėdami iš naujo įkelti Nginx konfigūraciją nenutraukiant aktyvių prisijungimų, vykdykite:

sudo systemctl reload nginx

Pagal numatytuosius nustatymus Nginx paleidžiamas automatiškai kartu su sistema. Norėdami tai išjungti, naudokite:

sudo systemctl disable nginx

Norėdami vėl įjungti automatinį Nginx paleidimą sistemos starto metu, naudokite:

sudo systemctl enable nginx

Nginx failai ir katalogai

/var/www/html

Web turinys. Pagal numatytuosius nustatymus šiame kataloge yra tik standartinis Nginx puslapis.

/etc/nginx

Numatytasis Nginx konfigūracijos katalogas.

/etc/nginx/nginx.conf

Numatytasis konfigūracijos failas. Jis keičiamas tada, kai reikia koreguoti globalią Nginx konfigūraciją.

/etc/nginx/sites-available/

Šiame kataloge saugomos visos serverio blokų konfigūracijos, nesvarbu, ar jos šiuo metu įjungtos, ar ne.

/etc/nginx/sites-enabled/

Šiame kataloge yra simbolinės nuorodos į failus iš sites-available katalogo. Tai leidžia pasirinktinai išjungti serverio blokus pašalinant simbolinę nuorodą.

/var/log/nginx/access.log

Šiame žurnale registruojamos užklausos į jūsų web serverį. Žurnalo vietą galima pakeisti Nginx konfigūracijoje.

/var/log/nginx/error.log

Šiame žurnale registruojamos Nginx klaidos.

Serverio blokų nustatymas (rekomenduojama)

Nginx serverio blokai atitinka Apache virtualius hostus. Jie leidžia viename serveryje talpinti kelis domenus arba svetaines.

Pagal numatytuosius nustatymus Nginx turi vieną serverio bloką kataloge:

/var/www/html

Norint talpinti kelis domenus, reikia sukurti katalogų struktūrą jūsų your_domain_name svetainei kataloge /var/www, paliekant /var/www/html kaip numatytąjį katalogą.

Sukurkite katalogą your_domain_name svetainei. Naudokite -p vėliavą, kad būtų sukurti ir visi reikalingi tėviniai katalogai:

sudo mkdir -p /var/www/your_domain/html

Priskirkite katalogo nuosavybę naudodami $USER aplinkos kintamąjį:

sudo chown -R $USER:$USER /var/www/your_domain_name/html

Nustatykite teises:

sudo chmod -R 755 /var/www/your_domain_name

Sukurkite index.html failą. Šiame pavyzdyje naudojame nano, tačiau galite naudoti bet kurį jums patogų teksto redaktorių:

nano /var/www/your_domain_name/html/index.html

Įrašykite turinio, pavyzdžiui:

<html> 
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Success! your_domain_name server block is working!</h1>
</body>
</html>

Išsaugokite ir uždarykite failą paspausdami Ctrl+X.

Kad Nginx galėtų pateikti šį turinį, reikia sukurti serverio bloką su tinkamomis direktyvomis. Vietoje numatytojo failo keitimo sukurkite naują konfigūracijos failą:

/etc/nginx/sites-available/your_domain_name

Įklijuokite šį konfigūracijos bloką. Jis panašus į numatytąjį, tačiau pritaikytas naujam katalogui ir domeno vardui:

server { 
listen 80;
listen [::]:80;

root /var/www/your_domain_name/html;
index index.html index.htm index.nginx-debian.html;

server_name your_domain_name www.your_domain_name;

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

root konfigūracija buvo pakeista į naują katalogą, o server_name į jūsų domeno vardą.

Nginx naudoja simbolines nuorodas, symlinks, kad nustatytų, kurie serverio blokai yra įjungti. Jei vėliau norėsite išjungti serverio bloką, galėsite pašalinti simbolinę nuorodą iš sites-enabled katalogo, o patį serverio bloką palikti sites-available kataloge.

Taigi reikia įjungti failą sukuriant nuorodą iš jo į sites-enabled katalogą, kurį Nginx nuskaito paleidimo metu:

sudo ln -s /etc/nginx/sites-available/your_domain_name /etc/nginx/sites-enabled/

Naršyklėje atidarykite savo domeną ir patikrinkite, ar viskas veikia:

Norėdami patikrinti visus VPS serveryje sukonfigūruotus serverio blokus, vykdykite šią komandą:

nginx -T | grep "server_name "

Būtinai įtraukite tarpą, kad būtų atmesti nesusiję rezultatai.

Rekomendacija: kad išvengtumėte hash bucket atminties problemos, kuri gali atsirasti pridėjus papildomų serverių vardų, pakoreguokite server_names_hash_bucket_size reikšmę faile:

/etc/nginx/nginx.conf

Atidarykite failą:

sudo nano /etc/nginx/nginx.conf

Atkomentuokite eilutę server_names_hash_bucket_size. Rezultato pavyzdys:

Jei kyla problemų arba norite pritaikyti pakeitimus, iš naujo paleiskite Nginx:

sudo systemctl restart nginx
Ar gavote atsakymą į savo klausimą?