Nginx - bu nima va nima uchun sizga veb-server kerak
O'qing - 8 мин.
Maqola o'qildi - 10 раз
Yangilangan - 21.11.2024
Chop etilgan - 21.11.2024

NGINX: Bu nima?

Nginx nima?

"Enginx" yoki "eNGINe X" nomi bilan ham tanilgan Nginx - bu keraksiz asoratlarsiz veb-server yaratish imkonini beruvchi dastur. Dastur universal bo'lib, pochta yoki proksi-server sifatida foydalanish mumkin.

Nginx - bu rus ishlanmasi, uning muallifi Igor Sysoev, Rambler kompaniyasining etakchi mutaxassislaridan biri. Dastur 2002 yilda paydo bo'lgan va uni yaratish zarurati server yukini oshirishda ishlash bilan bog'liq muammolar bilan bog'liq edi. 2004 yilda yordamchi dastur nafaqat Rambler tomonidan, balki uchinchi tomon tashkilotlari tomonidan ham qo'llanila boshlandi, 2011 yildan boshlab - Sysoevga tegishli kompaniya modernizatsiya va qo'llab-quvvatlashga e'tibor qaratdi. Endi dastur bir nechta versiyalarda, shu jumladan pullik, rivojlangan funksionallik bilan taqdim etilgan.

Ishlash printsipi

Nginx operatsion algoritmini klassik server bilan solishtirish mumkin, u mijoz so'rovlarini qabul qilish, ularni qayta ishlash va kerakli sahifani to'g'ri ko'rsatish uchun zarur bo'lgan kerakli fayllar, kodlar, grafikalar, matn, video va boshqa narsalarni yuborishni o'z ichiga oladi.

Farqi shundaki, Nginx hodisaga yo'naltirilgan so'rovni qayta ishlash sxemasi bilan asinxron ishlaydi. Ushbu xususiyat tufayli dastur kirish va chiqishni bloklamasdan bir nechta ulanishlarni qo'llab-quvvatlaydi. Bunday tavsif juda murakkab ko'rinadi, yaxshiroq tushunish uchun siz misolni tahlil qilishingiz kerak:

  • Mijozning katta hajmdagi faylni, masalan, yuqori aniqlikdagi formatdagi videoni yuborish haqidagi soʻrovini olish;
  • O'tkazishni faollashtirish;
  • So'rovni qayta ishlash to'plamini chiqarish. Bu boshqa kiruvchi so'rovlar bilan o'zaro ishlash imkonini beruvchi asosiy xususiyatdir;
  • Fayl uzatishni yakunlash;
  • Natijalarni yakuniy qayta ishlash, boshqa operatsiyalarni qayta boshlash.

Klassik serverning ishlash algoritmi ma'lumotlarni kiritish va chiqarish bilan bog'liq barcha operatsiyalar tugaguniga qadar yangi so'rovlarni qayta ishlashni bloklashni o'z ichiga oladi, Nginx bilan bu istisno. Ushbu xususiyat tufayli server bir vaqtning o'zida ko'plab so'rovlar bilan ishlaydi, bu mavjud resurslardan samaraliroq foydalanish imkonini beradi, uzatish kechikishlarini va boshqa muammolarni bartaraf etadi.

Nginx nafaqat standart serverning funktsiyalari bilan shug'ullanadi. Dasturdan quyidagi vazifalarni hal qilish uchun foydalanish mumkin:

  • Proksi-serverlar yaratish. Katta hajmdagi kiruvchi so'rovlar bilan ishlash etarli emas. Bunday vaziyatda u proksi-server funktsiyalarini ishga tushiradi, mijoz so'rovlarini qabul qiladi, ularni qayta ishlashni amalga oshiradigan kuchliroq tarmoq resurslariga o'tkazadi va foydalanuvchiga javoblarni yuboradi.
  • SSL va TLSni tugatish. Dastur ikkala protokol bilan samarali o'zaro ta'sir qiladi, ma'lumotlarni shifrlashi va shifrini ochishi mumkin. Bu funksiya sizga vositachi funksiyalarni amalga oshirish, foydalanuvchi kirayotgan asosiy serverdan yukning bir qismini olib tashlash imkonini beradi.

Afzalliklar

Nginx ning asosiy afzalliklari quyidagilardan iborat:

  • Yuqori tezlik. Ushbu afzallik muntazam yangilanishni talab qilmaydigan statik sayt mazmuni bilan o'zaro aloqada bo'lganda eng aniq namoyon bo'ladi. Sahifani yuklashda Nginx serveri maʼlumotlarni keshlaydi, shuning uchun keyingi soʻrovlar keshdan yuklanadi, bunday operatsiya bir zumda amalga oshiriladi.
  • Universallik. Dastur maksimal moslashuvchanlik va sozlash qulayligini ta'minlaydi, spetsifikatsiya, masshtab va talablardan qat'i nazar, muayyan tizimga moslashish oson.
  • RAMga minimal yuk. Nginx o'zining xotira segmentidan "hovuz" dan foydalanadi. Uning hajmi yukga mos ravishda avtomatik ravishda o'zgaradi, bu tezlikni ta'minlaydi va mavjud resurslardan eng oqilona foydalanish imkonini beradi.
  • Har tomonlama qo'llab-quvvatlash. Nginx dasturiy ta'minoti talabga ega va ommabop, ixtisoslashgan saytlarda, tematik jamoalarda siz qiziqtirgan savollarga osongina javob topishingiz mumkin, bu esa texnik muammolarni samarali hal qilishga yordam beradi. Bundan tashqari, rasmiy yordam mavjud va barcha ko'rsatmalar, hujjatlar rus tilida mavjud, ular tarjima va mahalliylashtirishni talab qilmaydi.
  • Moslashuvchanlik. Dastur nafaqat pullik, balki bepul nashrlarda ham mavjud. Dastur kodining ochiqligi o'zaro aloqani soddalashtiradi, har bir foydalanuvchi uni shaxsiy ehtiyojlariga to'liq mos ravishda sozlashi mumkin.

Operatsion tizimlar bilan moslik

Nginx-ning o'ziga xos xususiyati uning ko'p platformali tabiati bo'lib, u turli xil operatsion muhitlarda ishlatilishi mumkin. Ko'pincha u quyidagi operatsion tizimlarda qo'llaniladi:

  • Linux. Biz mashhur Ubuntu va Debian-dan Fedoragacha Linux yadrosiga asoslangan barcha platformalar haqida gapiramiz.
  • Unix. Oldingi holatda bo'lgani kabi, barcha Unix-ga o'xshash operatsion tizimlar bilan muvofiqligi ta'minlanadi.
  • macOS. Agar to'g'ridan-to'g'ri o'rnatish imkoni bo'lmasa, muammoni maxsus paket menejerlari yordamida osongina hal qilish mumkin.
  • Windows. Microsoft ishlanmalari uchun shunga o'xshash funksiyalarga ega bo'lgan boshqa echimlar ham mavjud, biroq Nginx rasmiy yordamga ega mashhur variant hisoblanadi.

U nafaqat kompyuterda, balki bulutda, masalan, GCP yoki AWS da oʻrnatilgan tizimlarda ham qoʻllanilishi mumkin. Tegishli kutubxonalar va kompilyatorlar mavjud boʻlsa, undan boshqa OTlarda ham foydalanish mumkin.

Apache bilan solishtirish

Ishlab chiquvchining so‘zlariga ko‘ra, Nginx dasturi avval hamma joyda qo‘llanilgan Apache platformasiga muqobil bo‘lishi kerak edi. Amaliyot shuni ko'rsatdiki, yangi dasturiy ta'minot veb-saytning statik kontenti bilan o'zaro aloqada bo'lganda ancha muvaffaqiyatli bo'ladi, serverga yuk minimaldir va ishlashda hech qanday muammo yo'q. Afzallik, ayniqsa, mahsulot kartalari, tashrif qog'ozlari, bloglarni o'z ichiga olgan statik tarkib bilan tavsiflangan veb-saytlarda sezilarli.

Taqqoslashda siz quyidagi omillarni ham hisobga olishingiz kerak:

  • Ishlash muhiti. Linux-ga o'xshash tizimlarda unumdorlik taxminan teng, ammo Windows-da Apache ma'lum bir afzalliklarga ega.
  • Texnik yordam. Nginx rus ishlanmasi bo'lganligi sababli, u yanada ilg'or, malakali va tezkor texnik yordamni taklif qiladi.
  • Sozlash qulayligi. Nginx-ni sozlash osonroq, Apache-da siz bir vaqtning o'zida bir nechta OS darajalaridan foydalanishingiz kerak, .htaccess fayllari uchun ma'lumotlarni diqqat bilan ro'yxatdan o'tkazishingiz kerak.
  • Modullilik. Apache Nginx ga qaraganda ko'proq modullarni taklif qiladi.
  • Virtual xostlar uchun yordam. Tenglik, ikkala holatda ham ularning konfiguratsiyasi bilan bog'liq muammolar yo'q.

Mumkin xatolar

Nginx-ni sozlash va ishlatish odatda yuqori malakani talab qilmaydi, hatto unchalik tajribali bo'lmagan ma'murlar ham vazifalarni bajara olmaydi, ammo ba'zida muvaffaqiyatsizliklar yuzaga keladi. Statistikaga ko'ra, quyidagilar eng keng tarqalgan:

  • 502 Bad Gateway. Ushbu bildirishnoma xizmat ko'rsatilayotgan xizmatlardan to'liq javob yo'qligini ko'rsatadi. Buning sababi odatda oddiy - aloqa yo'q.
  • 504 Gateway vaqti tugashi. Bunday holda, javob keladi, lekin kutish juda uzoq. Siz sozlamalarga o'tishingiz va kutish vaqtini oshirishingiz kerak.
  • 413 So'rov juda katta. Yuklab olingan fayllar juda katta bo'lsa, xato paydo bo'ladi. Yechim sozlamalarni o'zgartirishdir. Asosiy qiymat megabayt, siz uni oshirishingiz kerak.

Nginx-ni o'rnatish va sozlash

Linuxga o'xshash tizimda o'rnatish vaqtida siz ikkita texnologiyadan, oldindan tuzilgan paketdan yoki koddan foydalanishingiz mumkin. Paket oddiyroq usul, ammo kod ko'proq imkoniyatlarni ochadi, yordamchi modullarni o'rnatishga imkon beradi. Biroq, uning murakkabligi foydalanishni cheklaydi, shuning uchun paket texnologiyasi afzalroqdir. Microsoft Windows holatida siz Win32 API interfeysidan foydalanishingiz kerak bo'ladi.

Linux-ga paketdan o'rnatish "sudo apt-get updatesudo apt-get install nginx" buyrug'i bilan faollashtiriladi. Barcha keyingi sozlamalar “/etc/nginx/” papkasi orqali amalga oshiriladi, uning asosiy fayli nginx.conf.

Konfiguratsiya jarayonida siz quyidagi parametrlarga alohida e'tibor berishingiz kerak:

  • Ishchi_jarayonlar - server tomonidan ishlatiladigan ishchi jarayonlar soni. Bu protsessor yadrolari soni bilan bir xil bo'lishi kerak.
  • Ishchi_ulanishlari - har bir jarayon uchun ulanish chegarasi. Parametr oshgani sayin, bir vaqtning o'zida xizmat ko'rsatuvchi foydalanuvchilar soni ortadi.
  • Gzip_comp_level - siqish ko'rsatkichi. 1 - minimal siqish, 10 - maksimal. Qoidaga ko'ra, o'rtacha qiymat 6 etarli.

Nginx-ning fayllar bilan ishonchli o'zaro ta'siri uchun siz "/etc/nginx/sites-enabled" katalogiga ulanishingiz kerak. Ulanish tufayli siz saytlarni ishga tushirishni tezlashtirishingiz mumkin, ular ochilgandan keyin ma'lumotlar o'chirilmaydi.

Xulosa qilish

Nginx - bu standart yoki proksi-serverni tashkil qilish bilan bog'liq ko'plab muammolarni hal qilish imkonini beruvchi qulay, samarali yechim. Ba'zi jihatlari bo'yicha u Apache'dan oshib ketadi, kamroq hisoblash quvvatini talab qiladi, protsessor va operativ xotirani yuklamaydi va bir vaqtning o'zida bir nechta ulanishlar bilan o'zaro ta'sir o'tkazishga qodir.

Nginx-ning ko'p qirraliligi dasturni chop etilgan tipologiya va kontentdan qat'i nazar, turli saytlar bilan moslashtiradi. Ayniqsa qiyin vaziyatlarda siz Nginx-ni Apache bilan birgalikda ishlatishingiz mumkin, ammo ko'p hollarda uning asosiy imkoniyatlari etarli.

Ommabop savollarga javoblar

Xizmatdan qanchalik tez foydalanishni boshlashim mumkin?

Foydalanuvchi hisobi ariza topshirilgandan so‘ng darhol ochiladi.

Toʻlovni amalga oshirganingizdan soʻng darhol xizmatdan foydalanishni boshlashingiz mumkin.

Maqola muallifi:

user

Bosh muharrir

Danaev Almaz