Server — boshqa kompyuterlar, dasturlar yoki foydalanuvchilarga xizmat ko‘rsatadigan kompyuter yoki dasturiy tizim. Server internet orqali sayt ochish, ma’lumot saqlash, fayl ulashish, API ishlatish, database yuritish va boshqa xizmatlarni taqdim etadi.
Serverga murojaat qiladigan qurilma yoki dastur client deb ataladi. Masalan, foydalanuvchi brauzer orqali saytga kirganda, brauzer client sifatida serverga so‘rov yuboradi. Server esa kerakli ma’lumotni qaytaradi.
Vazifasi
Serverning asosiy vazifasi — so‘rovlarni qabul qilish, qayta ishlash va javob qaytarish.
Server quyidagi xizmatlarni bajarishi mumkin:
- web saytlarni ishlatish;
- API so‘rovlariga javob berish;
- ma’lumotlar bazasini yuritish;
- fayllarni saqlash;
- email xizmatlarini boshqarish;
- foydalanuvchi login va ruxsatlarini tekshirish;
- media fayllarni tarqatish;
- backup saqlash;
- real-time aloqa xizmatlarini ishlatish.
Masalan, foydalanuvchi uzbekdevs.uz saytiga kirganda, brauzer serverga so‘rov yuboradi. Server sayt sahifasini tayyorlab, foydalanuvchiga qaytaradi.
Server qanday ishlaydi?
Server doimiy ishlashga mo‘ljallangan bo‘ladi. U ma’lum bir port orqali so‘rovlarni kutadi. Client so‘rov yuborganda, server uni qabul qiladi va kerakli xizmatga uzatadi.
Oddiy web server jarayoni quyidagicha bo‘ladi:
- foydalanuvchi brauzerga sayt manzilini yozadi;
- DNS domenni IP manzilga aylantiradi;
- brauzer serverga HTTP yoki HTTPS so‘rov yuboradi;
- server so‘rovni qabul qiladi;
- kerakli fayl, sahifa yoki ma’lumot tayyorlanadi;
- server javobni brauzerga qaytaradi;
- brauzer natijani foydalanuvchiga ko‘rsatadi.
Server ichida bir vaqtning o‘zida web server, backend ilova, database, cache va boshqa xizmatlar ishlashi mumkin.
Server turlari
Serverlar bajaradigan vazifasiga qarab turli turlarga bo‘linadi.
- Web server — sayt sahifalari va web fayllarni foydalanuvchiga yetkazadi.
- Application server — backend dastur logikasini ishlatadi.
- Database server — ma’lumotlar bazasini saqlaydi va querylarga javob beradi.
- File server — fayllarni saqlash va ulashish uchun ishlatiladi.
- Mail server — email yuborish va qabul qilish jarayonlarini boshqaradi.
- DNS server — domen nomlarini IP manzillarga bog‘laydi.
- Proxy server — client va boshqa serverlar o‘rtasida vositachi bo‘lib ishlaydi.
- Game server — online o‘yinlar uchun real-time aloqa va holatni boshqaradi.
Fizik server va virtual server
Server fizik qurilma bo‘lishi ham, virtual muhitda ishlashi ham mumkin.
Fizik server — alohida apparat qurilmasi. Unda CPU, RAM, SSD, tarmoq kartasi va boshqa qismlar bo‘ladi.
Virtual server — bitta fizik server ichida dasturiy yo‘l bilan ajratilgan mustaqil server muhiti. VPS bunga misol bo‘ladi.
Virtual serverlar hosting, web saytlar, API, botlar va kichik yoki o‘rta loyihalar uchun keng ishlatiladi.
VPS
VPS — Virtual Private Server degani. U fizik server resurslarining bir qismini mustaqil server sifatida ajratib beradi.
VPS ichida odatda quyidagilar bo‘ladi:
- alohida operatsion tizim;
- ajratilgan CPU resursi;
- RAM;
- disk xotirasi;
- IP manzil;
- terminal orqali boshqarish imkoniyati.
VPS web sayt, backend ilova, Telegram bot, database, Docker container va boshqa xizmatlarni joylash uchun ishlatiladi.
Server operatsion tizimi
Serverlarda ko‘pincha Linux asosidagi operatsion tizimlar ishlatiladi. Ular barqarorlik, xavfsizlik va resurslardan samarali foydalanish uchun qulay.
Keng tarqalgan server operatsion tizimlari:
Linux serverlarda boshqaruv odatda terminal va SSH orqali amalga oshiriladi.
Web server
Web server foydalanuvchidan kelgan HTTP yoki HTTPS so‘rovlarni qabul qiladi va javob qaytaradi.
Mashhur web serverlar:
- Nginx;
- Apache;
- Caddy;
- LiteSpeed.
Web server statik fayllarni tarqatishi yoki so‘rovlarni backend ilovaga yo‘naltirishi mumkin. Masalan, Nginx foydalanuvchi so‘rovini FastAPI, Django yoki Node.js ilovasiga uzatishi mumkin.
Server resurslari
Serverning ishlashi uning resurslariga bog‘liq.
Asosiy server resurslari:
- CPU — so‘rovlarni qayta ishlash va hisoblash amallari uchun;
- RAM — ishlayotgan dasturlar, database va cache uchun;
- SSD — fayllar, database, log va tizim ma’lumotlarini saqlash uchun;
- Network — internet orqali ma’lumot almashish uchun;
- Bandwidth — ma’lum vaqt ichida uzatiladigan trafik hajmi uchun.
Server resurslari yetarli bo‘lmasa, sayt yoki ilova sekin ishlashi mumkin.
Server va xavfsizlik
Server internetga ulangan bo‘lgani uchun xavfsizlik muhim hisoblanadi. Serverda foydalanuvchi ma’lumotlari, konfiguratsiya fayllari, database va maxfiy kalitlar saqlanishi mumkin.
Server xavfsizligida quyidagi tushunchalar muhim:
- firewall;
- SSH;
- user permission;
- SSL sertifikat;
- backup;
- update;
- log monitoring;
- authentication;
- authorization.
Serverga ruxsatsiz kirish ma’lumot yo‘qolishi, sayt buzilishi yoki xizmat ishlamay qolishiga olib kelishi mumkin.
Dasturlashdagi o‘rni
Server backend dasturlar ishlaydigan asosiy muhitlardan biridir. Backend ilova clientdan kelgan so‘rovlarni qabul qiladi, database bilan ishlaydi va javob qaytaradi.
Serverda quyidagi dasturiy qismlar ishlashi mumkin:
- backend API;
- web server;
- database;
- cache;
- background worker;
- message broker;
- scheduler;
- monitoring xizmati.
Masalan, Django yoki FastAPI ilovasi serverda ishlaydi, Nginx esa tashqi so‘rovlarni qabul qilib, ularni backend ilovaga yo‘naltiradi.
Bog‘liq tushunchalar
Client, Hosting, Domen, IP, HTTP, HTTPS, API, Database, Nginx, VPS, Linux, Docker