Sobes.tech
Junior

Nginx nima uchun ishlatiladi?

sobes.tech AI

AIdan javob

Nginx — yuqori samarali asinxron veb-server va teskari proksi-server bo‘lib, quyidagilar uchun ishlatiladi:

  1. Statik fayllarni xizmat qilish: HTML, CSS, JavaScript, rasmlar va boshqa statik resurslarni tez va samarali yetkazib berish. Asinxron arxitekturasi tufayli, u ko‘p miqdordagi bir vaqtning o‘zida ulanishlarni kam resurs bilan boshqarishi mumkin.
  2. Teskari proksi: Mijoz so‘rovlarini bir yoki bir nechta backend-serverlarga (ilovalar, API) uzatish va javoblarni mijozlarga qaytarish. Bu yukni taqsimlash, xavfsizlikni oshirish (tarmoq tuzilmasini yashirish) va SSL terminatsiyasini amalga oshirish imkonini beradi.
  3. Yukni taqsimlash: Kiruvchi so‘rovlarni bir nechta serverlar o‘rtasida taqsimlash, ilovaning mavjudligini va kengaytirilishini oshirish uchun. Turli algoritmlarni qo‘llab-quvvatlaydi (masalan, round robin, eng kam ulanishlar).
  4. Kesh: Statik va dinamik resurslarni keshga olish, backendlar ustidagi yukni kamaytirish va javoblarni tezlashtirish uchun.
  5. SSL/TLS terminatsiyasi: HTTPS-trafikni shifrlashni backendga yuborishdan oldin, bu serverlar ustidagi yukni kamaytiradi va sertifikatlarni markaziy boshqarish imkonini beradi.
  6. Siqish: Ma’lumotlarni (masalan, Gzip) siqish, ularni mijozga yuborishdan oldin, tarmoqni kamaytirish va sahifa yuklashni tezlashtirish uchun.
  7. So‘rovlar tezligini cheklash: Arxitekturani haddan tashqari yuklanishdan himoya qilish uchun, ma’lum vaqt ichida alohida mijozdan kelgan so‘rovlar sonini cheklash.
  8. Veb-olovxona (WAF): Odatdagi veb-hujumlarga (masalan, SQL injektsiya, XSS) asosiy himoya.
# Statik fayllarni xizmat qilish va API uchun proksi konfiguratsiyasi misoli

server {
    listen 80;
    server_name example.com; # Domen nomi

    location / {
        root /var/www/html; # Statik fayllar yo‘li
        index index.html;
    }

    location /api/ {
        proxy_pass http://backend_server:8080; # API so‘rovlarini boshqa serverga proksi qilish
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}