Nginx o'rnatish va boshqarish
Nginx bilan ishlashning birinchi qadami โ uni serverga o'rnatish va boshqarishni o'rganish. Ushbu darsda Nginx'ni turli Linux distributivlarida o'rnatishni, uni ishga tushirish/to'xtatish/qayta yuklashni, config'ni tekshirishni hamda uning fayllari qayerda joylashishini batafsil ko'rib chiqamiz.
sudo yoziladi.Nginx'ni o'rnatish
O'rnatish usuli Linux distributividan bog'liq. Har bir distributivning o'z paket menejeri bor.
Debian / Ubuntu (apt)
Debian oilasidagi tizimlarda (Ubuntu shular jumlasidan) apt paket menejeri ishlatiladi. Avval paketlar ro'yxatini yangilab, keyin Nginx'ni o'rnatamiz:
sudo apt update
sudo apt install nginx
O'rnatish tugagach, Nginx odatda avtomatik ishga tushadi. Buni brauzerda server IP manzilini ochib tekshirish mumkin โ standart "Welcome to nginx!" sahifasi ko'rinishi kerak.
CentOS / RHEL / Fedora (yum yoki dnf)
Red Hat oilasidagi tizimlarda yum yoki uning yangi varianti dnf ishlatiladi:
sudo yum install nginx
# yoki yangiroq tizimlarda:
sudo dnf install nginx
Bu tizimlarda o'rnatishdan keyin Nginx'ni qo'lda ishga tushirish kerak bo'lishi mumkin (buni pastda ko'ramiz).
systemctl bilan boshqarish
Zamonaviy Linux tizimlarida xizmatlar (servicelar) systemd orqali boshqariladi. Uning buyrug'i โ systemctl. Nginx ham xizmat sifatida ro'yxatga olingani uchun uni shu buyruq bilan boshqaramiz.
Ishga tushirish (start)
sudo systemctl start nginx
Bu buyruq Nginx'ni ishga tushiradi. U so'rovlarni tinglashni boshlaydi.
To'xtatish (stop)
sudo systemctl stop nginx
Nginx'ni butunlay to'xtatadi. Bundan keyin sayt ochilmaydi, chunki so'rovlarni tinglaydigan hech kim qolmaydi.
Qayta ishga tushirish (restart)
sudo systemctl restart nginx
Nginx'ni to'xtatib, keyin qaytadan ishga tushiradi. Bu barcha ulanishlarni uzadi. Config'da katta o'zgarish qilingan bo'lsa foydalidir, lekin kichik o'zgarishlarda reload yaxshiroq (pastga qarang).
Holatini ko'rish (status)
sudo systemctl status nginx
Nginx hozir ishlab turibdimi yoki yo'qmi โ shuni ko'rsatadi. Chiqishida active (running) yozuvi bo'lsa, hammasi joyida. Xatolik bo'lsa, shu yerda dastlabki ma'lumot ko'rinadi.
Avtoyuklashni yoqish (enable)
Server qayta yuklanganda (reboot) Nginx avtomatik ishga tushishi uchun uni enable qilib qo'yamiz:
sudo systemctl enable nginx
enable โ server har qayta ishga tushganda xizmatni avtomatik yoqadi. start esa faqat hozir ishga tushiradi. Ikkalasini birga bajarish uchun sudo systemctl enable --now nginx ishlatish mumkin.Config'ni tekshirish: nginx -t
Config'da xato qilib, keyin Nginx'ni qayta yuklash โ xavfli. Agar config buzuq bo'lsa, Nginx ishga tushmay, saytingiz "o'lib" qolishi mumkin. Shuning uchun har doim avval config'ni sinab ko'ring:
sudo nginx -t
Agar hammasi to'g'ri bo'lsa, quyidagicha xabar ko'rinadi:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Agar xatolik bo'lsa, Nginx aynan qaysi faylning nechanchi qatorida muammo borligini aytadi.
sudo nginx -t ishlatib tekshiring. Bu ishlab turgan saytni kutilmagan uzilishdan asraydi.Qayta yuklash: nginx -s reload
Config'ni o'zgartirdingiz va u sinovdan o'tdi. Endi o'zgarishni qo'llash kerak. Bunda reload ishlatiladi โ bu Nginx'ni to'xtatmasdan, faqat yangi config'ni o'qib qayta yuklaydi:
sudo nginx -s reload
# yoki systemctl orqali:
sudo systemctl reload nginx
reload ning restart dan afzalligi โ u ochiq ulanishlarni uzmaydi. Nginx eski jarayonlar joriy so'rovlarni tugatguncha kutadi, yangi so'rovlarni esa yangi config bilan qabul qiladi. Foydalanuvchi hech qanday uzilishni sezmaydi.
sudo nginx -t bilan tekshirish, (3) sudo nginx -s reload bilan qo'llash. Har doim shu tartibda ishlang.Fayl va papkalar joylashuvi
Nginx'ning fayllari odatda quyidagi joylarda bo'ladi (Debian/Ubuntu misolida):
/etc/nginx/โ barcha konfiguratsiya fayllari shu papkada;/etc/nginx/nginx.confโ asosiy (bosh) config fayli;/etc/nginx/sites-available/โ mavjud sayt konfiguratsiyalari (barchasi shu yerda saqlanadi);/etc/nginx/sites-enabled/โ faol saytlar (bu yerda symbolik havolalar turadi);/etc/nginx/conf.d/โ qo'shimcha config bo'laklari (ba'zi tizimlarda asosiy joy shu);/var/www/html/โ saytning statik fayllari (HTML, CSS) uchun standart papka;/var/log/nginx/โ log fayllar shu yerda.
sites-available va sites-enabled juftligi Debian/Ubuntu'ning qulay yondashuvi. Siz sayt config'ini sites-available ichida yaratasiz, keyin uni faollashtirish uchun sites-enabled ichida unga symbolik havola (symlink) hosil qilasiz:
sudo ln -s /etc/nginx/sites-available/mening-saytim /etc/nginx/sites-enabled/
Saytni vaqtincha o'chirmoqchi bo'lsangiz โ config'ni o'chirmasdan, faqat sites-enabled dagi havolani olib tashlaysiz. Config esa sites-available da saqlanib qoladi.
sites-available/sites-enabled odatda bo'lmaydi โ u yerda config'lar to'g'ridan-to'g'ri /etc/nginx/conf.d/ ichiga .conf kengaytmasi bilan joylashtiriladi.Loglar: access.log va error.log
Nginx ikki asosiy log yuritadi, ikkalasi ham /var/log/nginx/ papkasida:
access.logโ har bir so'rov shu yerga yoziladi: kim, qachon, qaysi sahifani so'radi, qaysi holat kodi qaytdi;error.logโ xatoliklar va ogohlantirishlar shu yerga yoziladi: config muammolari, topilmagan fayllar, ilovaga ulanish xatolari.
Loglarni real vaqtda kuzatish uchun tail -f ishlatiladi (yangi qatorlar paydo bo'lishi bilan ekranda ko'rinadi):
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
error.log. Ko'pincha muammoning aniq sababi (masalan, "Permission denied" yoki "connection refused") aynan shu yerda yoziladi.Xulosa
- Nginx
apt(Debian/Ubuntu) yokiyum/dnf(CentOS/RHEL) orqali o'rnatiladi; - Boshqarish
systemctlorqali:start,stop,restart,status,enable; - Config'ni o'zgartirgach, doim
nginx -tbilan tekshiring, so'ngnginx -s reloadbilan uzilishsiz qo'llang; - Asosiy config โ
/etc/nginx/nginx.conf; saytlarsites-available/sites-enabledorqali boshqariladi; - Loglar
/var/log/nginx/da:access.log(so'rovlar) vaerror.log(xatolar).