Võrgujargoonis on server arvuti, mis edastab mitmesugust teavet kasutajatele või kliendimasinatele. Tavaliselt teeb server paljude klientide jaoks vaid mõningaid spetsiifilisi töid — iga sellist tööd nimetatakse teenuseks. Teenuseid kasutavad teised arvutid, mida kutsutakse klientideks, ning nende kahe vahel valitsevat suhet nimetatakse kliendi ja serveri suhteks. Näiteks Vikipeedia puhul töötavad Vikipeedia teenuste taga veebiserverid, mis saadavad Internetis veebilehti. Teie kliendiarvuti suhtleb Vikipeedia veebiteenusega, et neid lehti alla laadida. Serverid võivad ka võõrustada internetimänge, jagada faile ning anda juurdepääsu perifeersetele seadmetele nagu printerid. Lihtsustatult võib öelda, et üksikud arvutid ühenduvad võimsamate arvutitega — serveritega —, mis hoiavad faile ja veebisisu ning võimaldavad nendeni kaugjuurdepääsu üle Interneti.

Kuidas server töötab

Et serverid ja kliendid saaksid omavahel suhelda, peavad nad olema ühendatud võrku ja kasutama sama protokolli. Protokoll on reegelkomplekt ehk "keel", mis määrab, kuidas andmeid edastatakse ja milliseid käske kasutatakse. Näiteks veebilehtede edastamiseks kasutatakse tihti HTTP-protokolli (või selle turvalist varianti HTTPS). Teie arvuti kasutab HTTP(S)-i, et küsida Vikipeediast lehekülgi ja server vastab vajaliku sisuga, saates veebilehti teie arvutisse, mis need kuvab.

Tehniliselt toimub suhtlus tavaliselt järgmiselt: klient avab võrguühenduse serveri kindla pordi (näiteks veebiserveri puhul port 80 või 443) vastu, saadab päringu ja server vastab päringule vastava andmepaketiga. Serveritarkvara töötab sageli taustaprotsessina (daemon), mis kuulab sissetulevaid päringuid ja teenindab neid vastavalt konfiguratsioonile.

Tüübid ja rollid

Servereid on mitut tüüpi, sõltuvalt sellest, millist teenust nad osutavad. Levinumad näited:

  • Veebiserver — teenindab veebilehti (HTTP/HTTPS)
  • Failiserver — jagab ja salvestab faile võrgus (failijagamine)
  • Meiliserver — edastab ja säilitab e-kirju (SMTP, IMAP, POP3)
  • Andmebaasiserver — haldab struktureeritud andmeid ja vastab päringutele (SQL)
  • Mänguserver — majutab internetimänge ja sünkroniseerib mänguseisundeid
  • DNS-server — tõlgib domeeninimed IP-aadressideks
  • Print-server — haldab võrgus olevaid printereid ja perifeerseid seadmeid
  • Proxy ja tulemüüri serverid — filtreerivad ja vahendavad liiklust turvalisuse eesmärgil

Riistvara, tarkvara ja töömaht

Tavaliselt on serverid ehitatud olema võimsamad, usaldusväärsemad ja pidevalt töös. Neid kütkestatakse sageli spetsiaalse riistvara (palju mälumahtu, mitu protsessorituuma, RAID-salvestus, UPS) ning serverite puhul pannakse tähtsust järelvalvele ja vigade vältimisele. Mõnikord töötavad serverid klastrina — mitu masinat koos tagavad suurema jõudluse ja kättesaadavuse.

Serveritarkvara võib töötada ka "ühe masinaga, mis teeb mitut asja" olukorras, kuid suure koormuse korral kasutatakse eraldatud ressursse või virtuaalmasinaid/konteinereid. Kui serverile pöördub korraga liiga palju kasutajaid, võib tema jõudlus kokku kukkuda ehk "server aeglustub" või isegi lülituda välja, kui süsteem kaitseb end ülekoormuse eest.

Operatsioonisüsteemid ja konfiguratsioon

Tüüpilised serverite operatsioonisüsteemid on Linux, FreeBSD, NetBSD ja OpenBSD. Erinevalt tavalistest lauaarvutitest ei ole serveritel sageli monitori, klaviatuuri ega hiirt — neid hallatakse üle võrgu (remote access) kasutades tööriistu nagu SSH. Kui serveril ei ole vaja palju teha, võib serveritarkvara töötada arvutis, mis samal ajal teeb ka muid töid, kuid tootmiskeskkonnas eelistatakse tavaliselt spetsiaalseid või virtualiseeritud lahendusi.

Skaleerimine, koormuse tasakaalustamine ja kättesaadavus

Suurte koormuste juhtimiseks kasutatakse mitmeid tehnikaid:

  • Koormuse tasakaalustajad (load balancers) suunavad päringud mitme serveri vahel.
  • Klastrid ja replikatsioon tagavad, et üks serveri rike ei katkesta teenust (failover).
  • Virtuaalmasinad ja konteinerid (nt Docker, Kubernetes) võimaldavad kiiret skaleerimist.
  • CDN-id (Content Delivery Networks) vähendavad koormust kaughoidlatesse koormuse hajutamise abil.

Turvalisus ja haldus

Serverite turvalisus on kriitiline. Levinumad meetmed hõlmavad tulemüüre, turvatud ühendusi (SSH, TLS/HTTPS), regulaarseid tarkvarauuendusi, turvalist autentimist (võtmed, kahefaktoriline autentimine), ligipääsulogimist ja varundusi. Lisaks on oluline jälgida ressursside kasutust, rakendada piiranguid (rate limiting) ja konfigureerida õiged õigused failisüsteemil.

Peer-to-peer ja alternatiivsed mudelid

Peer-to-peer süsteemis toimivad kõik osapooled nii klientide kui serveritena — iga arvuti võib jagada ressursse teistega. Seda kasutatakse sageli failijagamises ja VOIP-is, kuid see mudel võib teatud juhtudel hõlbustada ka piraatluskatseid.

Lühike kokkuvõte

Server on spetsialiseerunud arvuti või tarkvaraprotsess, mis pakub teenuseid teistele arvutitele võrgus. Selle toimimise alus on võrguprotokollide (nt HTTP, SMTP, FTP, DNS) kokkulepe, see võib töötada eri tüüpi riist- ja tarkvaralahendustel ning selle skalaarimine, turvalisus ja haldus on võtmetähtsusega, et tagada usaldusväärne ja kiire teenus kasutajatele.