Odabir načina rada web servera na osnovu ličnog iskustva. Osnove web aplikacija Šta je potrebno za funkcioniranje web servera

Ako upišete http://www.site/how-web-server-work/ u adresnu traku vašeg pretraživača i pritisnete tipku Enter, na ekranu će se pojaviti ova stranica naše web stranice.

Na najosnovnijem nivou desilo se sledeće: Vaš pretraživač je uspostavio vezu sa Web serverom, poslao zahtev za dobijanje Web stranice stranice i primio ga.

Sada malo detaljnije:

URL se sastoji od tri dijela:

1. Protokol (http)

2. Naziv servera (www.site)

3. Adrese stranica (kako-radi-web-server-radi)

Pretraživač kontaktira server imena domene kako bi preveo ime stranice www.site u IP adresa, koji koristi za povezivanje sa serverskom mašinom. Pregledač zatim uspostavlja vezu sa Web serverom na navedenoj IP adresi na portu 80 ili bilo kom drugom ako je to predviđeno (o portovima ćemo raspravljati kasnije u ovom članku).

Prateći HTTP protokol, pretraživač je poslao zahtev serveru, zahtevajući fajl http://www.site/how-web-server-work/

Zapiši to kolačići takođe se može poslati iz pretraživača na server.

Kao odgovor, server je generirao dinamička web stranica i poslao nazad HTML tekst za prikaz ove stranice u vašem pretraživaču. Kolačići takođe se može poslati sa servera u pretraživač u zaglavlju stranice. Pregledač čita HTML oznake i proizvodi izlaz web stranice na ekranu.

Internet

Dakle, šta je "Internet"? Internet se sastoji od stotina miliona računara povezanih zajedno računarsku mrežu. Mreža omogućava svim računarima da međusobno komuniciraju. Kućni kompjuter može se povezati na Internet koristeći najviše Različiti putevi i uređaji - počevši od primitivnog modema za telefonsku liniju, učitavanje veze preko lokalna mreža (LAN) kod internet provajdera ( ISP).

Glavni provajderi Internet usluga podržavaju optičke linije za cijelu zemlju ili regiju. Okosne mreže su postavljene širom svijeta, povezane putem optičkih linija, podmorskih kablova ili satelitskih veza. Dakle, svaki računar na Internetu je povezan sa svakim drugim računarom na Internetu.

Klijenti i serveri

Općenito, svi računari na Internetu mogu se podijeliti u dvije kategorije: serveri i klijenti. Računari koji pružaju usluge (kao što su Web serveri, FTP serveri, usluge u oblaku) drugim mašinama su serveri. Mašine koje se koriste za povezivanje na ove usluge su − klijentima. Kada se povežete s Google-om da izvršite upit za pretraživanje ili koristite bilo koju od njegovih usluga, Google obezbjeđuje svoj računar (možda cijeli klaster moćnih računara) da servisira vaš zahtjev. Dakle, Google obezbjeđuje server. Vaš uređaj također može pružiti usluge nekome na Internetu. Stoga je korisnički stroj obično klijent, iako može postati i server ako je potrebno.

Server može pružiti jednu ili više usluga na Internetu. Na primjer, serverski računar može imati instaliran softver koji mu omogućava da djeluje kao web server, e-mail server i FTP server. Klijentski računari koji se pridružuju serveru usmjeravaju svoje zahtjeve na poseban softver koji radi na zajedničkom serverskom računaru. Na primjer, ako koristite web pretraživač na svom računaru, on će "razgovarati" sa web serverom na serverskom računaru. Vaša e-mail aplikacija će "razgovarati" sa serverom Email, i tako dalje.

IP adrese

Za povezivanje svih ovih mašina u mrežu, svaki računar na Internetu ima jedinstvenu adresu tzv IP adresa. Tipična IP adresa izgleda ovako:

Pozivaju se četiri broja u IP adresi okteti jer mogu uzeti vrijednosti između 0 i 255 ili 2 8 mogućih vrijednosti.

Svaki računar na Internetu ima svoju jedinstvenu IP adresu. Server ima statičku IP adresu koja se rijetko mijenja. Kućni računar često ima IP adresu koju dodeljuje ISP kada se mašina na njega poveže. Ova IP adresa je jedinstvena za ovu sesiju, ali sljedeći put može biti drugačija. Na ovaj način, ISP-u je potrebna samo jedna IP adresa za svaki ruter koji podržava, a ne za svakog klijenta.

Ako ste na Windows mašini, možete da vidite mnogo informacija o Internetu na svom računaru, uključujući vašu trenutnu IP adresu i ime hosta, koristeći komandu ipconfig. Na UNIX mašini morate kucati nslookup V komandna linija za prikaz IP adrese uređaja.

Imena domena

Budući da većina ljudi ima poteškoća da zapamti redoslijed brojeva koji čine IP adrese, i zbog toga što IP adrese ponekad moraju biti promijenjene, svi serveri i stranice na Internetu također imaju čovjeku čitljiva imena koja se nazivaju imena domena. Na primjer, www.. Ovo je za većinu nas lakše zapamtiti www.site nego da se setim 5.9.205.233

Naziv www.site se zapravo sastoji od tri dijela:

1. World Wide Web ime (www). Zapravo, možete bez eksplicitnog navođenja „www“, iako će, formalno, ovo biti druga mreža.

2. Ime domene (qriosity)

3. U domenskoj zoni najvišeg nivoa (ru)

Imena domena upravljati Registratori imena domena. Registrari kreiraju nazive domena najvišeg nivoa i osiguravaju da su sva imena u zoni najvišeg nivoa domena jedinstvena. Registar također daje kontakt informacije za svaki naziv domene i pokreće uslugu ko je, koji označava vlasnika domene. Ime hosta kreira vlasnik domene.

Serveri imena domena

Skup servera pozvan servere imena domena(DNS) mapira imena čitljiva ljudima u IP adrese. Ovi serveri sadrže jednostavne baze podataka imena i IP adresa, a distribuiraju se po cijelom Internetu. Većina pojedinačnih kompanija, provajdera Internet usluga i velikih univerziteta podržavaju mali DNS. Postoje i centralni DNS-ovi koji koriste podatke koje dostavljaju registri imena domena.

Kada unesete URL http://www..site, proslijedite ga serveru imena domene, server vraća ispravnu IP adresu za www.site. Brojni serveri imena mogu biti uključeni u dobivanje ispravne IP adrese.

Dakle, hajde da ponovimo ono što smo pročitali: Internet se sastoji od miliona mašina, od kojih svaka ima jedinstvenu IP adresu. Mnogi od ovih automobila jesu serveri. To znači da pružaju usluge drugim računarima na Internetu. Mnogi od ovih servera su serveri e-pošte, Web serveri, FTP serveri, serveri usluga u oblaku.

Luke

Svaki server čini svoje usluge dostupnim putem interneta koristeći numerisane luke, po jedan za svaku uslugu koja je dostupna na serveru. Na primjer, postoji serverski računar koji koristi Web server i FTP server. Web server će obično biti dostupan na portu 80, a FTP server će biti dostupan na portu 21. Klijenti se povezuju na uslugu na određenoj IP adresi i na određenom portu.

Svaka od najpopularnijih usluga dostupna je na unaprijed poznatom broju porta, ali bilo kojoj usluzi možete dodijeliti vlastiti broj porta.

Ako server prihvata veze na portu od vanjski svijet, a ako zaštitni zid ne štiti portove, možete se povezati na unaprijed određeni port sa bilo kojeg računara na Internetu i koristiti uslugu. Imajte na umu da ne postoji ništa što vas prisiljava da, na primjer, držite web server na portu 80. Ako ste instalirali svoj server i na njega učitali softver web servera, mogli biste postaviti web server na port 999, ili bilo koji drugi neiskorišteni port . Zatim, ako je, na primjer, vaša mašina poznata kao xxx.yyy.com onda se na nju mogu povezati preko URL-a http://xxx.yyy.com:999 -":999" jasno označava broj porta preko kojeg se može doći do vašeg web servera. Ako port nije naveden, onda pretraživač jednostavno pretpostavlja da je Web server dostupan pomoću dobro poznatog porta 80.

Protokoli

Jednom kada je klijent povezan sa uslugom na datom portu, on pristupa servisu koristeći poseban protokol. Protokol je skup konvencija na logičkom nivou koje dozvoljavaju programima da razmjenjuju podatke. Za zajednički rad između računara na Internetu koristi se TCP/IP porodica protokola. Web server koristi HTTP protokol.

Dodatno: Sigurnost

Iz ovog opisa možete vidjeti da je Web server prilično jednostavan komad posla softver. Uzima ime datoteke poslane pomoću naredbe GET, prima datoteku i šalje je pretraživaču. Čak i ako uzmete u obzir sav kod za rukovanje portovima, jednostavan program web servera ne sadrži više od 500 linija koda. Web serveri punog opsega su složeniji, ali u svojoj srži su takođe vrlo jednostavni.

Većina servera postavlja određeni nivo sigurnost na uslužne procese. Najjednostavnija opcija je da zatražite login i lozinku za pristup serveru. Napredniji serveri dodaju dodatnu sigurnost uspostavljanjem šifrovane veze između servera i pretraživača, tako da povjerljiva informacija(npr. brojevi kreditnih kartica) se mogu slati putem interneta.

Ovo je zaista sve što je potrebno za web server koji služi standardnim, statične web stranice. Statičke stranice su stranice koje se ne mijenjaju osim ako ih sam webmaster ne uređuje.

Dodatno: Dinamičke stranice

Šta se desilo dinamičan Web stranice? Na primjer:

1. Svaka knjiga gostiju vam omogućava da unesete poruku u HTML obrazac i automatski prikazuje nove i stare unose.

2. Svaki pretraživač vam omogućava da unesete ključne riječi u HTML formu upita, a zatim dinamički kreira stranicu na osnovu traženja informacija pomoću ovih ključnih riječi.

U svim ovim slučajevima, web server radi više od pukog „pretraživanja datoteke“. Obrađuje informacije i generira stranice ovisno o specifičnostima zahtjeva. U gotovo svim slučajevima web server koristi tzv skripte- programski kod napisan u PHP-u, Perlu, Javi i drugim programskim jezicima za završetak ovog procesa.

Stranice naše web stranice su također dinamične, kreirane od strane PHP pomoć koristeći MySQL baze podataka.

Web server (web-server) je server odgovoran za primanje i obradu zahtjeva (HTTP zahtjeva) od klijenata do web stranice. Klijenti su obično različiti web pretraživači. Kao odgovor, web server klijentima izdaje HTTP odgovore, u većini slučajeva zajedno sa HTML stranicom, koja može sadržavati sve vrste datoteka, slika, medijskih tokova ili bilo kojih drugih podataka.

Web server takođe obavlja funkciju izvršavanja skripti, kao što su CGI, JSP, ASP i PHP, koje su odgovorne za organizovanje zahteva ka mrežnim servisima, bazama podataka, pristup fajlovima, prosleđivanje e-pošte i druge e-commerce aplikacije.

Pojam „web server“ se također odnosi na tehničke uređaje i softver koji obavljaju funkcije web servera. To može biti računar koji je posebno odabran iz grupe ličnih računara ili radna stanica na kojoj je instaliran i radi servisni softver.

Korisnikov klijent, koji je prvenstveno web pretraživač, postavlja zahtjeve web serveru da dobije resurse identificirane URL-ovima. Resursi su HTML stranice, digitalni medijski sadržaji, medijski tokovi, razne slike, datoteke podataka ili bilo koji drugi podaci koje klijent zahtijeva. Kao odgovor, web server šalje klijentu tražene podatke. Ova razmjena se odvija korištenjem HTTP protokola.

HTTP (engleski: HyperText Transfer Protocol) je mrežni protokol za aplikacioni sloj prijenosa podataka. Glavni princip HTTP protokola je tehnologija klijent-server, koja osigurava interakciju između mreže i korisnika.

U slučaju male organizacije, web server može biti integralni sistem, koji će se sastojati od: HTTP servera - koristi se za zahtjeve prema web stranicama; FTP server – koristi se za preuzimanje datoteka putem Interneta; NNTP serveri – omogućava pristup grupama vesti; SMTP server – za e-poštu.

Priča

Britanski naučnik Tim Berners-Lee smatra se izumiteljem prvog web servera. Radeći od 1980. godine u Evropskoj laboratoriji za nuklearna istraživanja (Conseil Européen pour la Recherche Nucléaire, CERN) kao konsultant za softver, započeo je svoj razvojni rad. U Ženevi je, za svoje potrebe, razvio program Inquire, koji je koristio nasumične asocijacije za pohranjivanje podataka i postavio koncept za osnovu World Wide Weba.

Godine 1989. Tim Berners-Lee, radeći na intranetu CERN-a, predložio je osnivanje globalnog hipertekstualnog projekta, koji se sastojao od objavljivanja hipertekstualnih dokumenata povezanih hiperlinkovima. Realizacija ovog projekta bi, po njegovom mišljenju, naučnicima CERN-a olakšala kombinovanje, pretraživanje i razmjenu informacija. Da bi implementirao projekat, Tim Berners-Lee je zajedno sa svojim pomoćnicima izmislio URI i URL identifikatore, HTTP protokol i HTML jezik. Sve ove tehnologije danas se široko koriste u modernom Internetu i bez njih se više ne može.


Kao rezultat ovog projekta, Berners-Lee je razvio prvi svjetski web server, nazvan "httpd", kao i prvi svjetski hipertekstualni web pretraživač za NeXT računar, nazvan WorldWideWeb.

Prvi web pretraživač je radio na platformi NeXTSTEP, objektno orijentisanom operativnom sistemu koji obavlja više zadataka, i razvijen je korišćenjem Interface Builder-a. Interfejs web pretraživača bio je vrlo jednostavan i gotovo sve informacije su bile prikazane u tekstualnom formatu sa samo nekoliko slika. Pored standardnog FTP protokola, Tim Berners-Lee je koristio novi HTTP protokol, koji je izmislio. Između 1991. i 1993. Berners-Lee je precizirao i objavio tehnička svojstva svog novog razvoja: URI-je i URL-ove, HTTP protokol i HTML jezik. Web pretraživač je kasnije preimenovan u "Nexus" kako bi se izbjegla zabuna s operativnim sistemom na kojem je pretraživač razvijen i njegovim imenom.

Prvi veb server i prvi veb pretraživač na svetu radili su na NeXTSTEP personalnom računaru; ovaj kompjuter je sada izložen u muzeju CERN (Mikrokosmos).

Tim Berners-Lee je bio domaćin prve web stranice na svijetu na adresi http://info.cern.ch; Ova stranica je sada arhivirana. Prvi sajt se pojavio na internetu 6. avgusta 1991. godine. Na ovoj web stranici dato je:

  • opis World Wide Weba;
  • instrukcije ispravna instalacija web server;
  • informacije o tome kako kupiti web pretraživač;
  • ostale tehničke informacije.

Ova stranica je ujedno bila i prvi svjetski online imenik. Berners-Lee je na njemu objavio listu linkova ka drugim sajtovima i redovno je ažurirao.

12. decembra 1991. prvi web server na svijetu instaliran je u Centru za linearne ubrzanje Stanforda (SLAC) u Sjedinjenim Državama.

Osnovne i dodatne funkcije

Sve osnovne i dodatne funkcije web servera:

  • Prijem zahtjeva od web pretraživača putem HTTP standarda koristeći TCP/IP mrežne protokole;
  • Pretraživanje i slanje datoteka sa hipertekstom ili bilo kojim dokumentom u pretraživač putem HTTP-a;
  • Servis i obrada zahteva, kao što su: mailto, FTP, Telnet, itd.;
  • Pokretanje aplikativnih programa na web serveru sa naknadnim prenosom i vraćanjem parametara obrade preko standarda CGI interfejsa;
  • Rad i održavanje navigacijskih slikovnih karata (Image map);
  • Administracija i operativno upravljanje serverom;
  • Autorizacija korisnika i njihova autentifikacija;
  • Održavanje dnevnika korisničkih zahtjeva prema različitim resursima;
  • Automatizirani rad web stranica;
  • Podrška za stranice koje se generiraju dinamički;
  • Podrška za HTTPS protokol za sigurne veze sa klijentima.

Opis web servera

Web pretraživači komuniciraju sa web serverima koristeći Hypertext Transfer Protocol (HTTP). To je jednostavan protokol zahtjeva i odgovora za slanje informacija korištenjem TCP/IP protokola. Web server prima zahtjev, detektuje datoteku, šalje je pretraživaču, a zatim zatvara vezu. Na isti način se obrađuju i grafičke informacije koje se nalaze na stranici. Zatim je red na web pretraživaču da prikaže HTML dokument preuzet sa interneta na monitoru korisnika.

Osim HTML stranica i grafike, web serveri mogu pohraniti bilo koju datoteku, uključujući tekstualne dokumente, dokumente za obradu teksta, video datoteke i audio informacije. Danas, ako ne uzmete u obzir upitnike koje korisnici popunjavaju, najveći dio web prometa prenosi se u jednom smjeru - pretraživači čitaju datoteke s web servera. Ali ovo će se promeniti sa opštim usvajanjem PUT metode opisane u HTTP 1.1 nacrtu, koji omogućava da se datoteke upisuju na Web server. Danas metodu PUT koriste uglavnom korisnici koji kreiraju web stranice, ali bi u budućnosti moglo biti korisno i drugim korisnicima da daju povratne informacije informativnim centrima. PUT zahtjevi su mnogo jednostavniji od običnog POST uploada datoteka na web server.

Na web serveru svoj posao obavljaju i razne aplikacije, od kojih su najpopularniji pretraživači i alati za komunikaciju sa bazama podataka. Standardi koji se koriste za razvoj ovih aplikacija uključuju Common Gateway Interface (CGI), JavaScript skript jezike i Java programiranje i VisualBasic. Pored CGI standarda, neke kompanije za web servere kreirale su interfejse za programiranje aplikacija (API), kao što su Netscape Server API i Internet Server API, koje su kreirali Microsoft i Process Software AG. Ova sučelja omogućavaju programerima da direktno pristupe određenim funkcijama web servera. Neki web serveri pružaju međuopremu za povezivanje s bazama podataka, što može zahtijevati napredno znanje programiranja za rad.

Osnovne funkcije pretraživanja pomažu korisnicima da sortiraju informacije koje su im potrebne, a uslužni programi baze podataka daju korisnicima web pretraživača pristup tim informacijama.

Pregled web servera

Kriterijumi za odabir web servera mogu uključivati ​​različite karakteristike: instalaciju, konfiguraciju, upravljanje serverom, administraciju, upravljanje informacijama koje se nalaze na serveru, zaštitu ovih informacija, kontrolu pristupa, funkcije razvoja aplikacija i performanse.

Većina web servera se lako i brzo instalira.

Najteži dio procesa instalacije je konfiguriranje više imena domena na jednom fizički uređaj ili drugim riječima organizacija virtuelnih servera.

Web serveri poseduju alate za upravljanje informacionim modulom koji karakteriše celokupnu organizaciju web sajta, a takođe imaju alate za proveru ispravnosti internih i eksternih hipertekstualnih linkova. Paket LiveWire kompanije Netscape Communications, koji se isporučuje sa Novell Open Enterprise Server (OES) i opciono je dostupan uz FastTrack Server, ima uslužni program za upravljanje hostom koji navodi sve veze za odabranu stranicu. Ovaj uslužni program također pruža opću listu svih netačnih veza koje otkrije. O'Reilly & Associates' WebView ima istu funkcionalnost i može prikazati detaljno stablo datoteka sa svim nevažećim vezama istaknutim crvenom bojom.

Tu su i osnovni alati za upravljanje sadržajnim materijalom. Web administratori moraju odabrati gdje će pohraniti datoteke i kako će tim datotekama pristupati korisnici koji pristupaju web serveru. Ovo zahtijeva mapiranje između logičkih URL-ova i fizičkih direktorija datoteka. Svaki softver obavlja ovu operaciju na svoj jedinstven način.

Sa sve većom popularnošću web servera i njihovom sve većom upotrebom u intranetima, povećava se komercijalna aktivnost na Internetu, pa se povećava i značaj zaštite informacija. Češće nego ne, sigurnosni sistemi web servera su ili preterani ili nedovoljni za današnje intranete. Ukoliko je potrebno ograničiti pristup određenim informacijama unutar kompanije, onda postoji izbor između korištenja nešifriranih lozinki koje se prenose komunikacijskim kanalima i korištenja SSL protokol(engleski: Secure Sockets Layer) je složena i spora metoda koja se koristi za šifriranje lozinki i podataka.

Za organizaciju rada pojedinačnih korisnika mogu se koristiti i njihove grupe interne aplikacije servera ili određenih funkcija operativnog sistema. Za organizaciju rada pojedinačnih korisnika i njihovih grupa mogu se koristiti interne serverske aplikacije ili određene funkcije operativnog sistema. Microsoft IIS Batch Service pruža podršku za osnovni Windows NT mrežni operativni sistem.

NetWare web server kompanije Novell, Inc. Potpuno integrisan sa uslugama adresara (NetWare Directory Services, NDS). Zgodno je upravljati korisnicima iz zajedničkog centra, ali može predstavljati sigurnosni rizik. Lozinke se distribuiraju nešifrovane putem komunikacionih kanala, a ako se presretnu, ugrožen je ne samo web server, već je ugrožena i sigurnost cijelog mrežnog operativnog sistema.

Razvoj aplikacija je jedna od glavnih funkcija web servera. Okruženje za razvoj aplikacija i alati za povezivanje baze podataka veoma su važni za proširenje mogućnosti web servera, budući da razvoj aplikacije zavisi od različitih idiosinkratičnih detalja sučelja za programiranje aplikacije (API), kao i od karakteristika programskih jezika ili individualne preferencije programera.

Web serveri mogu poslužiti raznim sistemima od intraneta malih preduzeća do velikih web informacionih centara koje koriste milioni ljudi.

Za male korporativne intranete, najbolji paket za korištenje je Internet Information Server (IIS), kreiran i distribuiran od strane Microsofta. IIS ima prilično jednostavnu instalaciju i jednostavna podešavanja konfiguracije. Ovaj paket web servera je dobro integrisan sa kontrolama pristupa, alatom za praćenje sistema Performance Monitor i Event Viewerom. IIS web server također nudi nekoliko alata za dinamički prijenos informacija iz baza podataka. IIS je veoma brz. IIS komponente podržavaju protokole kao što su: HTTP, HTTPS, FTP, NNTP, SMTP, POP3.

Kako bi se olakšalo kreiranje web informacionih centara, većina web servera dolazi s uslužnim programima i alatima za upravljanje sadržajem. Pored HTML uređivača i pretvarača formata dokumenata, najkorisniji alati su URL kontrole, koje osiguravaju da sve hipertekstualne veze na vašoj web stranici rade.

Svaki lični računar koji je povezan na Internet može se pretvoriti u web server ako na njega instalirate poseban serverski softver.

Najčešći web serveri su Apache (Apache Software Foundation), IIS (Microsoft) i iPlanet server (od Sun Microsystems i Netscape Communications Corporation). Sada na tržištu softvera za web servere postoji ogroman izbor proizvoda, komercijalnih i besplatnih.

Jedan od najčešćih web servera je Apache iz Apache Software Foundation. Procjenjuje se da se koristi na 65% svih web servera u svijetu. Jedna od glavnih prednosti Apache softvera je da je besplatan za distribuciju. Programeri redovno popravljaju pronađene greške i pružaju dobru korisničku podršku. Ovaj web server podržava veliki broj modula, uslužnih programa i dodataka. Budući da je od samog početka Apache razvijen kao softver za administratore i napredne korisnike, nedostatak je što ga je teško konfigurirati i održavati za neiskusne webmastere.

Sljedeći po popularnosti je IIS web server iz Microsofta. Prema Netcraft-u, IIS web server čini 12,46% od ukupnog broja web servera. Ovaj proizvod je dio Windows NT porodice serverskog softvera. Njegove glavne prednosti su stabilnost, velika brzina i mogućnost povezivanja dodatnih modula. Microsoft nastoji osigurati da svaki korisnik može koristiti njegove proizvode bez pomoći stručnjaka ako treba da riješi standardne probleme. Stoga je IIS vrlo jednostavan za instalaciju, konfiguraciju i održavanje. Web server podržava .NET tehnologiju, koja je u posljednje vrijeme sve popularnija među programerima i profesionalnim korisnicima. Ove prednosti podižu IIS web server na viši nivo i možete očekivati ​​da će se njegova upotreba povećati.

Ostali poznati web serveri:

  • nginx je besplatni web server i mail proxy server koji je razvio Igor Sysoev. Jednostavan, brz i pouzdan server. Radi na Linuxu i drugim sistemima sličnim Unixu operativni sistemi, kao i na Windows-u. Popularno na glavnim web stranicama;
  • lighttpd- besplatni web server. Razvio Jan Kneschke. Brz i siguran web server. Radi na Linuxu i drugim operativnim sistemima sličnim Unixu, kao i Windows;
  • Google web server- web server koji je baziran na Apacheu i koji koristi Google za organiziranje svoje web infrastrukture;
  • Smola- besplatni web server i server aplikacija za Javu. Razvio Caucho Technology Inc.;
  • Cherokee- besplatni web server koji se kontroliše samo preko web interfejsa. Napisano u programskom jeziku C;
  • Rootage- web server napisan u programskom jeziku Java. Radi na Linux i Windows;
  • THTTPD- jednostavan, mali, brz i siguran web server. Razvio ACME Labs Software.

Klijenti web servera

Obično je klijent web pretraživač. Ali razni drugi uređaji i programi također mogu pristupiti web serveru:

  • Web pretraživač instaliran na desktop personalnom računaru;
  • Web pretraživač instaliran na PDA ili drugom prijenosnom uređaju;
  • Mobilni telefoni i pametni telefoni s kojima korisnik putem WAP protokola ostvaruje pristup resursima web servera;
  • Različiti programi koji mogu samostalno pristupiti web serveru radi ažuriranja ili dobijanja drugih informacija. Primjer su različiti antivirusi koji povremeno kontaktiraju web server radi ažuriranja baze podataka;
  • Razni digitalni uređaji, kao i neki kućni aparati.

Ovaj će članak biti koristan onima koji već imaju vlastitu web stranicu ili je planiraju otvoriti. Članak će biti posebno zanimljiv za ambiciozne webmastere koji smatraju da je najbolji čas njihovog projekta iza ugla i žele se pripremiti za priliv posjetitelja stranice.

Čak i oni koji samo sanjaju o hiljadama korisnika na svojoj web stranici vjerovatno su se zapitali: „Koliko korisnika će podržavati moja web stranica ako se istovremeno prijave?“ Odmah se sjetim dobro poznatog izraza "Habraeffect" - fenomen kvara web stranice koja nije bila spremna za brojne prijelaze na nju nakon što se link pojavio na Internetu.

Pretpostavimo da već postoji web stranica (ili će uskoro biti): gdje da je postavimo? Treba li to biti klasični hosting ili VPS server? Ako vps, koji i kako ga najbolje konfigurirati? Ili možda nema nikakve razlike i lakše je izabrati ono što je jeftinije? U ovom članku ćemo pogledati nekoliko opcija i u praksi vidjeti koja je prikladnija za našu stranicu.

Eksperimentirat ćemo: postaviti različite režime rada servera i mjeriti performanse. Simuliraćemo opterećenje na sajtu pomoću usluge Loaddy.com. Tamo možete podesiti broj korisnika, rastući tip opterećenja, a grafikon će pokazati kako server reaguje na njih. Smatra se da jedan korisnik generiše približno jedan zahtjev na stranicu u roku od 10 sekundi. Kao testno mjesto, uzmimo demo online prodavnicu na cms moguta. Popuniće se testnim „proizvodima“ koji se prikazuju na glavnoj stranici prema nekoliko kriterijuma (tj. prilikom kreiranja stranice radi se sa bazom podataka itd.). Na ovaj ili onaj način, to će vam omogućiti da međusobno uporedite modove.

Kao testno mjesto, kreirat ćemo VPS server na Ubuntu OS-u. Njegova konfiguracija će biti . Pretpostavićemo da su to serveri ulazni nivo kreirana u većini slučajeva za nove projekte. Probna verzija online prodavnice biće dostupna na IP adresi http://130.193.44.219/

Dobro će doći i klasični hosting, na koji ćemo također postaviti istu on-line trgovinu radi testiranja. Možete sami pratiti naš put i provesti iste testove na svom projektu!

Budući da se u većini slučajeva uz vps nudi i kontrolna tabla, mi ćemo izvršiti glavne promjene postavki u njemu. Na vps serveru su nam dostupna 3 načina rada:

  • Apache;
  • Apache u CGI modu;
  • Nginx + php-fpm (bez Apache).
Ali prvo, hajde da ga testiramo na hostingu:

Klasičan jeftin hosting

Greške se pojavljuju kada broj posjetilaca prelazi 50 ljudi. Hosting prestaje da servira sadržaj, a ako odemo na kontrolnu tablu hostinga, možemo vidjeti nešto poput sljedećeg:

Vaša web lokacija je ograničena u posljednja 24 sata. Resursi procesora su ograničeni za vašu web lokaciju. Dosegli ste ograničenja za ulazne procese (broj istovremeno pokrenutih PHP i CGI skripti, zakazanih poslova i sesija konzole) 126 puta.
Pa, naravno, hosting je hosting, posebno jeftin. Možete, naravno, pronaći tarifu koja će pružiti više mogućnosti, ali sve to treba uzeti u obzir i nekako saznati točne podatke o ograničenjima od svakog hosting provajdera.

VPS: Apache

Sljedeći na redu je naš testni VPS sa Apache modom, koji se, inače, podrazumevano nudi prilikom instaliranja ISP kontrolne table.

Problemi počinju kada broj korisnika pređe 90. Ako se ulogujemo na naš server preko ssh-a i u ovom trenutku pogledamo listu procesa koristeći top komandu, sortiranu pomoću Shift+M (po količini utrošene memorije), vidjet ćemo ovako nešto:

Vidimo da je apache2 proces prerastao u mnogo djece i da su pojeli svu RAM memoriju našeg vps servera.

Ovdje moramo dati malu primjedbu. Činjenica je da za Apache server, teoretski, postoji način rada koji omogućava, umjesto velikog broja podređenih procesa za svaku konekciju, kreiranje nekoliko takozvanih višestrukih niti, od kojih bi svaka opsluživala nekoliko veza. Ovaj način rada se zove radnik, za razliku od zadanog prefork. Ali instalacija nije laka, nemoguće je to učiniti na panelima poput ISP-a, a ako se zbunite i pokušate to učiniti preko ssh-a, otkrit ćete da za to nije dovoljno isključiti prefork i uključiti worker , takođe vam je potrebna verzija php-a koja je sigurna za niti. A ako se koriste moduli kao što su Zend ili IonCube, oni također moraju biti sigurni u niti. I općenito, službena PHP web stranica ne preporučuje instaliranje ovog načina rada.

VPS: CGI

Hajde da vidimo šta se dešava kada koristite CGI mod. Da biste to uradili, morate dozvoliti upotrebu PHP-a u CGI modu na ISP kontrolnoj tabli, to se radi u „ Računi– korisnici – postavke za korisnika.”

Ispostavilo se da je to sumorna slika. Server odbija da servira sadržaj čak i sa 55+ posetilaca, RAM je sva pojedena „php“ procesima. Slijedi pokušaj vraćanja funkcionalnosti, ali se i dalje završava gotovo 100% neuspjehom.

VPS: Nginx + PHP-FPM

Došlo je vrijeme za način rada u kojem se Apache server uopće ne koristi, umjesto njega radi Nginx, a php obrađuje php-fpm modul. Ako koristite ISP kontrolni panel, morate omogućiti ovaj način za korisnika. To se također radi u odjeljku "Nalozi - Korisnici - Korisničke postavke". Ovaj način bi također trebao biti dostupan u odjeljku „Postavke – Funkcije – Web server (www)”.

Upravo ono što je potrebno! 100% dostupnost, dok su brzina učitavanja i vrijeme odziva servera na prihvatljivom nivou, iako se povećavaju sa povećanjem opterećenja. Ipak, server se nosi!

Pogledajmo tabelu procesa u trenutku maksimalnog opterećenja na serveru:

Vidimo da još uvijek imamo zalihe po pristupačnoj cijeni ram memorija. A podređeni procesi php-fpm7.0 ne rastu u velikim količinama, već su ograničeni na 5 kopija, od kojih svaka služi nekoliko niti.

Pa, izgleda da je "pobjednički režim" određen. Hajde da saznamo koliko istovremenih posetilaca naš server može da opsluži u ovom režimu. Ali prije toga ćemo napraviti malo "tuning". Prvo, pošto se apache ne koristi kada server radi na ovaj način, može se potpuno onemogućiti. To ćemo učiniti na kontrolnoj tabli ISP-a u odjeljku “Sistem - Usluge”. Drugo, hajde da malo promenimo princip pokretanja php-fpm procesa. Podrazumevano je dinamičan. To znači da će podređeni procesi ostati u memoriji čak i kada nisu potrebni. U isto vrijeme, memorija se ne oslobađa i vremenom ti procesi mogu postati veći nego što bismo željeli. Stoga se predlaže instaliranje režima „na zahtjev“ - na zahtjev. I postavite broj podređenih procesa i vrijeme čekanja za njih.

Da biste to učinili, morat ćete se prijaviti na server putem ssh-a i upisati ove postavke u konfiguraciju php fajl. Zgodno je to učiniti u datoteci za korisnika za kojeg je domena kreirana u ISP-u.

Obično se nalazi u /etc/php/7.0/fpm/pool.d

Dakle: sudo nano /etc/php/7.0/fpm/pool.d/www-root.conf

Tamo vidimo sljedeće zadane postavke:

Pm = dinamički pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_children = 17 pm.max_spare_servers = 5
Da bi način rada na zahtjev funkcionisao, ovo morate zamijeniti sa:
pm = ondemand pm.max_children = 17 pm.process_idle_timeout = 10 s
I ponovo pokrenite php-fpm sa komandom

Sudo servis php7.0-fpm restart
Nakon toga, php-fpm7.0 procesi će biti kreirani na zahtjev (ako postoji opterećenje), maksimalni broj njih će biti = 5, a nakon 10 sekundi mirovanja proces će biti ubijen, oslobađajući RAM.

Za svaki slučaj, hajde da ponovo pokrenemo naš test kako bismo bili sigurni da sva ova amaterska aktivnost nije negativno uticala na performanse stranice:

Sada pokrenimo Loaddy s puno posjetitelja da vidimo koliko konekcija naš server može podnijeti:

Dobra vijest je da su svi zahtjevi obrađeni, iako sa velikim zakašnjenjem, sa velikim brojem njih u sekundi. Vrijeme odgovora servera se približava 10 sekundi sa brojem zahtjeva od 190+. No, podsjetimo se grafikona apache moda, gdje smo dobili 4 sekunde odgovora servera već kod 80+ korisnika, dok u php-fpm modu slična kašnjenja se posmatraju sa 130 zahtjeva, koje smo posebno istaknuli kursorom na gornjem grafikonu.
Ali ovo je isti VPS.

Tabela top procesa na kraju testa (sa 200 korisnika):

Imajte na umu da je nakon završetka testiranja oslobođena memorija koju koristi pfp-fpm:

To znači da je naš server spreman za nova opterećenja.

Neophodno je zapamtiti da sajt radi u nginx+php-fpm režimu, što znači da se apache2 ne koristi u radu i, kao rezultat toga, .htaccess se ne koristi. Ovo može izgledati nezgodno, ali to je najbrža dostupna opcija, a pretraživači bolje rangiraju stranice koje su brže.

Zaključak

U zaključku, još jedna mala stvar: ako ste konfigurisali sve što ste želeli na serveru i odlučili da onemogućite kontrolnu tablu ISP-a, ili vam je licenca za nju istekla, imajte na umu da će „osnovni“ proces sa njega ostati da visi. vaš server. Kako mjeseci prolaze, može postati veći, pa je bolje da ga "ubijete" i uklonite iz autorun-a i krone.

Ako želite sami testirati stranicu koristeći Loaddy ili druge metode, dostupna je na

Industrija web hostinga zahtijeva barem neko osnovno znanje za rad. Postoji nekoliko pojmova za web hosting kojih bi svaki webmaster trebao znati. Jedan od najosnovnijih je: web server U stvarnosti, web hosting se sastoji od web servera koji pružaju prostor za vašu web stranicu. HP Micro AMD N40L server je svestran server koji može da obezbedi platformu za organizovanje i zaštitu poslovnih informacija, omogući efikasnu komunikaciju sa korisnicima i maksimalno iskoristi postojeću kancelarijsku opremu i resurse. HP MicroServer je isplativ početni server za preduzeća sa manje od 10 klijenata i može podići vaše poslovanje na nove nivoe produktivnosti i efikasnosti. Da biste saznali više o HP Micro AMD N40L serveru, pratite ovaj link http://vint.com.ua/product/computers/dir_3010558/dir_3010559 .

Web server može značiti dvije stvari - kompjuter, koji hostuje web stranicu i program, koji radi na takvom računaru. Stoga se termin odnosi na web server i hardver i softver . Pogledaćemo ove dve vrste jedan po jedan.

Hardver web servera

Web stranica je zbirka web stranice koje su digitalne datoteke koje se obično pišu pomoću jezika za označavanje hiperteksta HTML. Web stranica će biti dostupna cijelom svijetu cijelo vrijeme, za to mora biti pohranjena ili na hostingu ili na računaru povezanom na Internet 24/7/365. Takav računar se zove Web server (imajte na umu da su prva slova velika).

Potencijalno možete hostirati web stranicu na svom kućnom računaru, ali za to je potrebno puno rada i stalnog praćenja. Lakše je kupiti web hosting od neke kompanije jer ih ima na hiljade koje nude ovu uslugu po pristupačnim cijenama. Ukratko o jednoj od najboljih kompanija na kraju članka, ne samo da možete dobiti web hosting, već i naziv domene i web stranicu i to je stvarno jeftino!

Postoji niz zahtjeva za kompjuterski server - mora biti dovoljno brz, imati veliku količinu RAM-a i HDD sa velikim obimom.Ali najvažnije je imati stalnu adresu na Internetu, poznatu i kao IP - Internet Protocol adresa. Ako IP adresa web stranice nije pronađena i ona će raditi offline- pretraživač će prikazati grešku ne mogu pronaći web stranicu.

Web serverski programi i softver

Programi web server Ovo je softver koji pokreće web stranicu na računaru hosting servera. Njegov glavni cilj: problem web stranice; to znači da osluškuje zahtjeve iz web pretraživača (također poznatih kao klijentima ) i odgovara slanjem potrebnih podataka nazad. Ova interakcija klijent-server je poseban dio načina na koji web server radi..

Postoji mnogo programa za web servere. Najpoznatiji i najpopularniji od njih je Apache, koju je razvila Apache Foundation. Apache nije samo besplatan, već je dostupan i za nekoliko operativnih sistema, uključujući Windows, Macintosh i Linux/Unix.

Iako se termini web server i server aplikacija često koriste naizmjenično da upućuju na istu stvar, odnosno da bi se osiguralo pravilno funkcioniranje web stranice, oni nisu ista stvar. Umjesto toga, oni rade zajedno na isporuci sadržaja sa web stranica do krajnjih korisnika. Web server se može odnositi na program koji prihvata i ispunjava dolazne zahtjeve klijenata za web resurse širom svijeta. Opslužuje ove zahtjeve zajedno sa opcionim sadržajem, koji su obično HTML stranice, slikovne datoteke, video datoteke, itd. Aplikacijski server služi dinamički sadržaj krajnjim korisnicima koristeći različite protokole, uključujući HTTP. Ovaj članak objašnjava razliku između njih.

Šta je web server?

Web server nije ništa drugo do softverski program dizajniran za obradu web zahtjeva. Prihvata dolazne zahtjeve u obliku statičkog sadržaja, koji su u osnovi komponente web stranice uključujući HTML stranice, grafičke i video datoteke, itd. Zatim odgovara na zahtjeve preko HTTP-a zajedno sa dodatnim sadržajem podataka. Glavni zadatak web servera je da obezbijedi sadržaj na World Wide Webu kako bi ga učinio dostupnim krajnjim korisnicima. Može se odnositi na sistem sastavljen od hardvera ili softvera, ili gdje se pohranjuje web sadržaj. Govoreći jednostavnim riječima, web server je računar koji isporučuje web stranice na zahtjev. Apache je najpopularniji i najčešće korišteni web server otvorenog koda koji je razvio i održava Apache Software Foundation.

Šta je server aplikacija?

Aplikacioni server je pojam koji se često miješa sa web serverom, osim što može koristiti različite strategije za rukovanje zahtjevima koje je pokrenuo web server. Ovo olakšava hostovanje i isporuku visokokvalitetnih poslovnih aplikacija. Često se posmatra kao troslojna aplikacija koja se sastoji od GUI korisnik (GUI), poslužitelj aplikacija i poslužitelj baze podataka i transakcija. Služi poslovnoj logici aplikacijskim programima kroz različite protokole, uključujući, ali ne ograničavajući se na HTTP. To je softverski okvir koji pruža sve mogućnosti potrebne za kreiranje i pokretanje web-baziranih i poslovnih aplikacija. Umjesto posluživanja statičkog sadržaja, najprikladniji je za posluživanje dinamičkog sadržaja i prijenos aplikacija s jednog uređaja na drugi.

Razlika između web servera i servera aplikacija

Osnove weba i poslužitelja aplikacija

Web server se odnosi na hardver ili softver, ili oboje, koji isporučuje sadržaj ili usluge krajnjim korisnicima preko World Wide Weba. To je više kao program koji odgovara na dolazne mrežne zahtjeve za web resurse koristeći HTTP protokol. Poznat je i kao Internet server. S druge strane, aplikacijski server je softverski okvir baziran na komponentama koji olakšava razvoj i pokretanje web aplikacija. U suštini, to je serverski program srednjeg nivoa dizajniran da obezbedi poslovnu logiku za aplikativne programe.

Web server je ograničen samo na HTTP sadržaj, što znači da koristi HTT protokol za pohranu, obradu i isporuku sadržaja klijentima. To je moćno računalo koje web stranice čini dostupnim preko Interneta, a komunikacija između klijenta i servera se obavlja pomoću HTTP-a. Server aplikacija nije ograničen na slanje statičkog HTML sadržaja; U stvari, on komunicira poslovnu logiku klijentskim aplikacijama koristeći više protokola.

Funkcija web servera i servera aplikacija

Posao web servera je da prihvati i odgovori na zahtjeve korisnika koji su preusmjereni od strane HTTP klijenata njihovih računara, koji mogu biti iz web pretraživača ili sa mobilna aplikacija. Glavna svrha web servera je da statički sadržaj učini dostupnim korisnicima za pregled u web pretraživačima. Posao aplikacijskog poslužitelja je hostirati i objaviti aplikacije i procese poslovne logike koristeći nekoliko različitih protokola. Radi u sprezi sa web serverom.

Multithreading

Web server odgovara na zahtjeve koji dolaze iz više veza istovremeno, ali ne može obraditi više istovremenih zahtjeva paralelno. Ideja korištenja niti za poboljšanje brzine obrade jednostavno ne funkcionira s web serverima. S druge strane, aplikacijski serveri podržavaju multi-threading kao i niz drugih funkcija kao što su dijeljenje izolacije, grupiranje, balansiranje opterećenja, grupisanje itd.

Kapacitet web servera i servera aplikacija

Web server je baziran na programima vezanim za internet i intranet za opsluživanje e-pošte, zahtjeva za preuzimanje FTP fajlovi, te za kreiranje i objavljivanje web stranica za klijente koristeći HTTP protokol. Može se koristiti samostalno ili kao komponenta u aplikacijskom serveru. S druge strane, aplikacijski serveri mogu učiniti sve što i aplikacijski serveri i mnogo više. Oni su sposobniji za kreiranje dinamičkog sadržaja koji će služiti i web i poslovnim aplikacijama.

Web server vs Application Server: Tabela poređenja

Sažetak web servera vs. Server aplikacija

Web serveri igraju osnovnu ulogu u tome kako Internet funkcioniše, bez kojih Internet prestaje da postoji. Jednostavno rečeno, web serveri djeluju kao prolaz između korisnika i World Wide Weba. To je sistem dizajniran za isporuku statičkog sadržaja krajnjim korisnicima putem Interneta. Ograničen je na traženje usluga klijenata samo putem HTTP protokola. Nasuprot tome, serveri aplikacija su intenzivniji, koji pružaju usluge međuvera klijentskim aplikacijama putem različitih protokola, uključujući HTTP. To je platforma dizajnirana za instalaciju, rad i hosting aplikacija i servisa za krajnje korisnike. Iako su oba neophodna za pravilno funkcioniranje web stranice, međusobno se jako razlikuju.


Top