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:
- 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.
- 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.
- 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).
- Kesh: Statik va dinamik resurslarni keshga olish, backendlar ustidagi yukni kamaytirish va javoblarni tezlashtirish uchun.
- SSL/TLS terminatsiyasi: HTTPS-trafikni shifrlashni backendga yuborishdan oldin, bu serverlar ustidagi yukni kamaytiradi va sertifikatlarni markaziy boshqarish imkonini beradi.
- Siqish: Ma’lumotlarni (masalan, Gzip) siqish, ularni mijozga yuborishdan oldin, tarmoqni kamaytirish va sahifa yuklashni tezlashtirish uchun.
- So‘rovlar tezligini cheklash: Arxitekturani haddan tashqari yuklanishdan himoya qilish uchun, ma’lum vaqt ichida alohida mijozdan kelgan so‘rovlar sonini cheklash.
- 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;
}
}