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




