Je, seva ya wavuti inafanya kazi vipi? Seva za Wavuti nyepesi

Ukiandika http://www.site/how-web-server-work/ kwenye upau wa anwani wa kivinjari chako na ubonyeze kitufe cha Ingiza, ukurasa huu wa Tovuti yetu utaonekana kwenye skrini.

Katika kiwango cha msingi zaidi, yafuatayo yalifanyika: Kivinjari chako kiliunda muunganisho kwa seva ya Wavuti, kilituma ombi la kupata ukurasa wa Wavuti wa ukurasa, na kulipokea.

Sasa maelezo zaidi kidogo:

URL ina sehemu tatu:

1. Itifaki (http)

2. Jina la seva (www.site)

3. Anwani za ukurasa (jinsi-seva-ya-mtandao-kazi)

Kivinjari huwasiliana na seva ya jina la kikoa ili kutafsiri jina la tovuti www.site kuwa Anwani ya IP, ambayo hutumia kuunganisha kwenye mashine ya seva. Kivinjari kisha huunganisha kwa seva ya Wavuti kwenye anwani maalum ya IP kwenye bandari 80 au nyingine yoyote ikiwa imekusudiwa (Tutajadili bandari baadaye katika nakala hii).

Kufuatia itifaki ya HTTP, kivinjari kilituma ombi kwa seva, ikiomba faili http://www.site/how-web-server-work/

kumbuka hilo vidakuzi inaweza pia kutumwa kutoka kwa kivinjari hadi kwa seva.

Kwa kujibu, seva ilizalisha ukurasa wa wavuti wenye nguvu na kuirudisha maandishi ya HTML ili kuonyesha ukurasa huu kwenye kivinjari chako. Vidakuzi inaweza pia kutumwa kutoka kwa seva hadi kwa kivinjari kwenye kichwa cha ukurasa. Kivinjari husoma vitambulisho vya HTML na hutoa matokeo ya ukurasa wa Wavuti kwenye skrini.

Mtandao

Kwa hivyo "Mtandao" ni nini? Mtandao una mamia ya mamilioni ya kompyuta zilizounganishwa pamoja mtandao wa kompyuta . Mtandao unaruhusu kompyuta zote kuwasiliana na kila mmoja. Kompyuta ya nyumbani inaweza kuunganishwa kwenye Mtandao kwa kutumia mbinu na vifaa mbalimbali - kuanzia na modemu ya awali ya laini ya simu, kupakia kupitia muunganisho wa mtandao wa ndani ( LAN) na mtoa huduma wa mtandao ( Mtoa Huduma za Intaneti).

Watoa huduma wakuu wa mtandao wanaunga mkono njia za fibre optic kwa nchi nzima au eneo. Mitandao ya uti wa mgongo imewekwa kote ulimwenguni, imeunganishwa kupitia njia za nyuzi za macho, nyaya za chini ya bahari au viungo vya satelaiti. Kwa hivyo, kila kompyuta kwenye Mtandao imeunganishwa kwa kila kompyuta nyingine kwenye mtandao.

Wateja na Seva

Kwa ujumla, kompyuta zote kwenye mtandao zinaweza kugawanywa katika makundi mawili: seva na wateja. Kompyuta zinazotoa huduma (kama vile seva za Wavuti, seva za FTP, huduma za wingu) kwa mashine zingine seva. Mashine zinazotumika kuunganisha huduma hizi ni − wateja. Wakati umeunganishwa kwa Google, ili kutekeleza swali la utafutaji au kutumia huduma zake zozote, Google hutoa kompyuta yake (labda kundi zima kompyuta zenye nguvu) kuhudumia ombi lako. Kwa hivyo Google hutoa seva. Mashine yako inaweza pia kutoa huduma kwa mtu kwenye Mtandao. Kwa hivyo, mashine ya mtumiaji kawaida ni mteja, ingawa inaweza pia kuwa seva ikiwa ni lazima.

Seva inaweza kutoa huduma moja au zaidi kwenye Mtandao. Kwa mfano, kompyuta ya seva inaweza kuwa na programu iliyosakinishwa ambayo inaruhusu kufanya kazi kama seva ya Wavuti, barua pepe ya seva na seva za FTP. Kompyuta za mteja zinazojiunga na seva huelekeza maombi yao kwa programu maalum inayoendesha kwenye kompyuta ya seva iliyoshirikiwa. Kwa mfano, ikiwa unatumia kivinjari cha Wavuti kwenye kompyuta yako, "itazungumza" na seva ya Wavuti kwenye kompyuta ya seva. Programu yako ya barua pepe "itazungumza" na seva ya barua pepe, na kadhalika.

Anwani za IP

Ili kuunganisha mashine hizi zote kwenye mtandao, kila kompyuta kwenye mtandao ina anwani ya kipekee inayoitwa Anwani ya IP. Anwani ya IP ya kawaida inaonekana kama hii:

Nambari nne katika anwani ya IP zinaitwa pweza kwa sababu wanaweza kuchukua maadili kati ya 0 na 255 au 2 8 maadili iwezekanavyo.

Kila kompyuta kwenye mtandao ina anwani yake ya kipekee ya IP. Seva ina anwani ya IP tuli, ambayo mara chache hubadilika. Kompyuta ya nyumbani mara nyingi huwa na anwani ya IP iliyotolewa na ISP wakati mashine inaunganishwa nayo. Anwani hii ya IP ni ya kipekee kwa kipindi hiki, lakini inaweza kuwa tofauti wakati ujao. Kwa njia hii, ISP inahitaji tu anwani moja ya IP kwa kila kipanga njia inayounga mkono, si kwa kila mteja.

Ikiwa unafanya kazi Mashine ya Windows, unaweza kuona maelezo mengi ya mtandao kwenye kompyuta yako, ikiwa ni pamoja na anwani yako ya sasa ya IP na jina la mpangishi, kwa kutumia amri ipconfig. Kwenye mashine ya UNIX, unahitaji kuandika kuangalia V mstari wa amri ili kuonyesha anwani ya IP ya mashine.

Majina ya vikoa

Kwa sababu watu wengi wana shida kukumbuka mlolongo wa nambari zinazounda anwani za IP, na kwa sababu anwani za IP wakati mwingine zinahitaji kubadilishwa, seva na tovuti zote kwenye Mtandao pia zina majina yanayoweza kusomeka na binadamu yanayoitwa. majina ya vikoa. Kwa mfano, www.. Hii ni rahisi kwa wengi wetu kukumbuka www.tovuti kuliko kukumbuka 5.9.205.233

Jina www.site lina sehemu tatu:

1. Jina Ulimwenguni Pote Mtandao (www). Kwa kweli, unaweza kufanya bila kutaja kwa uwazi "www", ingawa, rasmi, hii itakuwa mtandao tofauti.

2. Jina la kikoa (qriosity)

3. Katika eneo la kikoa ngazi ya juu(ru)

Majina ya vikoa kusimamia Wasajili wa majina ya kikoa. Wasajili huunda majina ya vikoa vya kiwango cha juu na kuhakikisha kuwa majina yote katika ukanda wa ngazi ya juu wa kikoa ni ya kipekee. Msajili pia hutoa maelezo ya mawasiliano kwa kila jina la kikoa na kuanza huduma nani, ikionyesha mmiliki wa kikoa. Jina la mpangishaji linaundwa na mmiliki wa kikoa.

Seva za majina ya kikoa

Seti ya seva zinazoitwa seva za jina la kikoa(DNS) huweka majina yanayosomeka na binadamu katika anwani za IP. Seva hizi zina hifadhidata rahisi za majina na anwani za IP, na zinasambazwa kote kwenye mtandao. Kampuni nyingi za kibinafsi, watoa huduma za mtandao, na vyuo vikuu vikubwa vinaunga mkono DNS ndogo. Pia kuna DNS kuu zinazotumia data inayotolewa na Wasajili wa Majina ya Vikoa.

Unapoingiza URL http://www..site, huipitisha kwa seva ya jina la kikoa, seva inarudisha anwani sahihi ya IP kwa www.site. Idadi ya seva za majina zinaweza kuhusika katika kupata anwani sahihi ya IP.

Kwa hiyo, hebu turudie kile tunachosoma: Mtandao una mamilioni ya mashine, kila moja ikiwa na anwani ya kipekee ya IP. Mengi ya magari haya ni seva. Hii ina maana kwamba wanatoa huduma kwa kompyuta nyingine kwenye mtandao. Nyingi za seva hizi ni seva za barua pepe, seva za Wavuti, seva za FTP, seva za huduma za wingu.

Bandari

Seva yoyote hutoa huduma zake kupitia mtandao kwa kutumia nambari bandari, moja kwa kila huduma inayopatikana kwenye seva. Kwa mfano, kuna kompyuta ya seva inayoendesha seva ya Wavuti na seva ya FTP. Seva ya wavuti kwa kawaida itapatikana kwenye bandari 80, na seva ya FTP itapatikana kwenye mlango wa 21. Wateja huunganisha kwenye huduma kwenye anwani mahususi ya IP na kwenye mlango maalum.

Kila moja ya huduma maarufu zaidi inapatikana kwenye nambari ya bandari inayojulikana, lakini unaweza pia kugawa nambari yako mwenyewe bandari kwa huduma yoyote.

Ikiwa seva inakubali miunganisho kwenye mlango kutoka kwa ulimwengu wa nje, na ikiwa ngome hailinde milango, unaweza kuunganisha kwenye mlango ulioainishwa kutoka kwa kompyuta yoyote kwenye Mtandao na utumie huduma. Kumbuka kuwa hakuna kitu kinachokulazimisha, kwa mfano, kuweka Seva ya Wavuti kwenye bandari 80. Ikiwa ulisakinisha seva yako na kupakia programu ya Seva ya Wavuti juu yake, unaweza kuweka Seva ya Wavuti kwenye bandari 999, au mlango wowote mwingine ambao haujatumiwa. . Kisha, kama, kwa mfano, mashine yako inajulikana kama xxx.yyy.com basi wanaweza kuunganishwa nayo kutoka kwa URL. http://xxx.yyy.com:999 -":999" inaonyesha wazi nambari ya mlango ambayo seva yako ya Wavuti inaweza kufikiwa. Ikiwa bandari haijabainishwa, basi kivinjari kinadhania kuwa seva ya Wavuti inapatikana kwa kutumia bandari inayojulikana 80.

Itifaki

Mara mteja akiunganishwa na huduma kwenye bandari fulani, hupata huduma kwa kutumia maalum itifaki. Itifaki ni seti ya makubaliano kiwango cha mantiki, kuruhusu programu kubadilishana data. Kufanya kazi pamoja kati ya kompyuta kwenye Mtandao, familia ya TCP/IP ya itifaki hutumiwa. Seva ya wavuti hutumia itifaki ya HTTP.

Ziada: Usalama

Unaweza kuona kutoka kwa maelezo haya kwamba Seva ya Wavuti ni kazi rahisi sana programu. Inachukua jina la faili iliyotumwa na PATA amri, hupokea faili na kuituma kwa kivinjari. Hata ikiwa utazingatia nambari zote za kushughulikia bandari, programu rahisi ya seva ya Wavuti haina zaidi ya mistari 500 ya nambari. Seva za Wavuti za kiwango kamili ni ngumu zaidi, lakini kwa msingi wao pia ni rahisi sana.

Seva nyingi huweka kiwango fulani usalama kwa michakato ya huduma. Chaguo rahisi zaidi- omba kuingia na nenosiri ili kupata ufikiaji wa seva. Seva za hali ya juu zaidi zinaongeza usalama wa ziada, kwa kuanzisha muunganisho uliosimbwa kwa njia fiche kati ya seva na kivinjari, ili habari za siri(kwa mfano nambari kadi za mkopo) inaweza kutumwa kupitia mtandao.

Hii ndiyo yote inahitajika kwa seva ya Wavuti ambayo hutumikia kiwango, kurasa za wavuti tuli. Kurasa tuli- hizi ni kurasa ambazo hazibadiliki isipokuwa msimamizi wa wavuti mwenyewe azihariri.

Zaidi ya hayo: Kurasa zinazobadilika

Nini kilitokea yenye nguvu Kurasa za wavuti? Kwa mfano:

1. Kitabu chochote cha wageni hukuruhusu kuingiza ujumbe katika fomu ya HTML, na huonyesha maingizo mapya na ya zamani kiotomatiki.

2. Injini yoyote ya utafutaji inakuwezesha kuingia maneno muhimu katika fomu ya ombi la HTML, na kisha inaunda ukurasa kwa nguvu kulingana na kutafuta habari kwa kutumia maneno haya muhimu.

Katika visa hivi vyote, seva ya Wavuti hufanya zaidi ya "kutafuta faili." Inachakata taarifa na kuzalisha kurasa kulingana na maelezo mahususi ya maombi. Karibu katika visa vyote, seva ya Wavuti hutumia kinachojulikana maandishi- nambari ya programu iliyoandikwa katika PHP, Perl, Java na lugha zingine za programu ili kukamilisha mchakato huu.

Kurasa za tovuti yetu pia zina nguvu, zimeundwa na Msaada wa PHP kwa kutumia hifadhidata za MySQL.

Seva ya wavuti ni seva inayokubali maombi ya HTTP kutoka kwa wateja, kwa kawaida vivinjari vya wavuti, na kuwapa majibu ya HTTP, kwa kawaida pamoja na ukurasa wa HTML, picha, faili, mtiririko wa midia au data nyingine. Seva za wavuti ndio msingi wa Mtandao Wote wa Ulimwenguni.

Seva ya wavuti inarejelea programu ambayo hufanya kazi za seva ya wavuti na kompyuta yenyewe ambayo programu hii inaendesha.

Mteja, ambaye kwa kawaida ni kivinjari cha wavuti, hufanya maombi kwa seva ya wavuti ili kupata rasilimali zilizotambuliwa na URL. Rasilimali ni kurasa za HTML, picha, faili, mitiririko ya media au data nyingine ambayo mteja anahitaji. Kwa kujibu, seva ya wavuti hutuma data iliyoombwa kwa mteja. Ubadilishanaji huu unafanyika kupitia itifaki ya HTTP.

Hatua kuu mtumiaji wa mwisho kwenye mtandao ni "kwenda kwenye ukurasa wa Wavuti." Katika kiwango cha jumla, hii inapendekeza kufanya kazi pamoja jozi za maombi:

Kivinjari cha Wavuti kama vile Firefox au Internet Explorer ambacho huonyesha katika umbo linaloweza kusomeka na binadamu ukurasa ulioombwa unaopokea kutoka...

Seva ya wavuti, kwa kawaida iko kwenye mashine ya mbali, ambayo hujibu ombi la ukurasa na mtiririko wa data katika HTML au umbizo sawa.

Vivinjari hushughulikiwa na watumiaji wanaovichagua na kuvichanganua kwa uangalifu unaostahili. Kinyume chake, seva zinaonekana tu kwa wafanyikazi wa kiufundi wa tovuti. Zaidi ya hayo, ingawa kuna seva nyingi tofauti za Wavuti, karibu 90% ya tovuti zote, kulingana na utafiti wa hivi karibuni wa Netcraft, unatumia mbili tu kati yao - Apache na Habari za Mtandao Seva (IIS). Seva hizi zote mbili ni bidhaa zilizotengenezwa vizuri, na sio tu orodha ndefu sana ya vipengele vilivyojengwa, lakini pia "soko la sekondari" la vitabu, nyongeza, ushauri, watoa huduma, nk.

Seva ya wavuti inatathminiwa kulingana na idadi ya vigezo muhimu zaidi:

Ufanisi: Je, hujibu kwa haraka ombi?

Ubora: Je, seva inaendelea kufanya kazi kwa kutegemewa wakati watumiaji wengi wanaifikia kwa wakati mmoja?

Usalama: Je, seva hufanya shughuli zinazopaswa tu? Je, inatoa uwezo gani ili kuthibitisha watumiaji na kusimba mtiririko wa taarifa kwa njia fiche? Je, kuitumia hufanya programu za jirani au wapangishaji kuwa hatarini zaidi?

Afya: Je, seva ina hali gani za kushindwa na hali za dharura?

Kuzingatia.

Kubadilika: seva inaweza kusanidiwa kukubali idadi kubwa ya maombi au kurasa zenye nguvu, inayohitaji mahesabu muhimu, au uthibitishaji changamano, au...?

Mahitaji ya jukwaa: kwenye majukwaa gani seva inaweza kutumika? Je, anawasilisha mahitaji maalum kwa jukwaa la vifaa?


Usimamizi: Je, seva ni rahisi kusakinisha na kudumisha? Je, inaendana na viwango vya shirika vya ukataji miti, ukaguzi, gharama, n.k.?

Seva za wavuti zinazojulikana:

Apache ni seva ya wavuti isiyolipishwa inayotumiwa sana katika mifumo ya uendeshaji kama UNIX;

· IIS kutoka Microsoft, inasambazwa na mfumo wa uendeshaji wa seva Familia ya Windows

nginx ni seva ya wavuti ya bure,

· lighttpd ni seva ya wavuti isiyolipishwa.

Google Seva ya Wavuti- seva ya wavuti kulingana na Apache na kurekebishwa na Google.

· Resin ni seva ya programu ya wavuti isiyolipishwa.

· Cherokee ni seva ya wavuti isiyolipishwa, inayodhibitiwa tu kupitia kiolesura cha wavuti.

· Rootage ni seva ya wavuti iliyoandikwa katika java.

· THTTPD ni seva rahisi, ndogo, ya haraka na salama ya wavuti.

"Nuru" seva za Wavuti

Kwa ujumla, "nyepesi" inamaanisha rahisi, rahisi kusakinisha, inafanya kazi vizuri, isiyo na dhamana na thabiti - ndogo na ngumu kidogo kuliko Apache na IIS, ambayo, kwa kujaribu kukidhi soko kubwa iligeuka kuwa miundo ngumu sana.

Seva za mwanga wa kutosha hufungua fursa ambazo hazipatikani kwa viongozi wa soko na mbadala nyingine "nzito". Kwa mfano, seva nzima inaweza kutoshea kwenye faili moja. Hii ni rahisi kwa msanidi programu, unaweza kujaribu na maoni mapya kwa kuyaendesha kwenye seva nyepesi, usakinishaji wake ambao huchukua sekunde. Pia, kwa sababu ya asili yao isiyo ya lazima, seva nyepesi hufanya kazi kwa mafanikio kwenye mashine ambazo haziwezi kuhimili uzito wa IIS.

Seva ndogo, nyepesi za Wavuti pia hufanya kazi vizuri kwenye kompyuta za viwandani mifumo ya mbali, katika hali mbaya au katika hali ya ukosefu wa umeme wa kutosha. Katika hali hizi, faida kubwa ni uwezo wa kuchakata kurasa za Wavuti na programu zingine ambazo haziitaji utendaji mwingi au nafasi ya diski; hii inamaanisha kuwa mashine za mbali zinaweza kuwa na vidhibiti vya usimamizi vinavyoweza kufikiwa na Wavuti vilivyojengwa ndani, bila ugumu wa ukuzaji na uendeshaji wa Apache.

Takriban seva zote nyepesi za Wavuti ni chanzo wazi kwa digrii moja au nyingine. Ikiwa tunahitaji tabia maalum ya seva ya Wavuti, seva zilizoelezewa hapa chini ni ndogo sana kwamba ni rahisi kueleweka na kwa hivyo ni rahisi kuboreshwa. Seva hizi za Wavuti ni nyenzo bora ya chanzo kwa miradi ambayo seva za Wavuti hujengwa katika maunzi maalum au katika programu maalum iliyoundwa kufanya kazi kwenye kompyuta. madhumuni ya jumla. Pia hutumiwa sana kwenye wavuti za kawaida:

· YouTube hutumia lighttpd kwa utoaji wa haraka yaliyomo kwenye kumbukumbu, kama vile video;

· cdServe inaendeshwa kwenye CD za "Mitambo na Zana za Utengenezaji mbao za Ujerumani";

· LiteSpeed ​​​​imeangaziwa kwenye twitter, www.funnyoride.com, www.airliners.com, WordPress.com, fanfiction.com, SlashGear, www.forumactif.com na tovuti zingine maarufu;

· OpenSUSE, RubyOnRails, MarkaBoo na tovuti zingine kadhaa mashuhuri zinategemea Mongrel;

· thttpd inafanya kazi kwenye ht.com, mtv.com, The Drudge Report, garfield.com, n.k.

Seva za mwanga zina jukumu lao hata katika vituo vya kompyuta halisi, ikiwa ni pamoja na tovuti zinazojulikana zilizoorodheshwa hapo juu na sio wao tu. Tovuti zenye utendakazi wa hali ya juu hutenganisha shughuli zao ili kutoa faida kubwa kutoka kwa akiba, seva za proksi, nk. Tovuti inayotegemea Apache, kwa mfano, inaweza kuwa na usanifu ambamo picha zinazobadilika polepole hutolewa kupitia seva ya Wavuti ya "minimalist" kutoka kwa mfumo maalum wa faili. Kile ambacho mtumiaji wa mwisho huona ni matokeo ya amri Apache inafanya kazi na moja au zaidi seva za ziada za Wavuti, kila mmoja akicheza nafasi ambayo anafanya vyema. Ubunifu huu unaweza kutoa matokeo ya haraka sana na gharama ndogo kwa mahesabu.

Ingawa wana mengi sawa, pia kuna tofauti ndani ya aina hii. Seva nyingi nyepesi za Wavuti zimeandikwa kwa C, lakini kuna idadi ya utekelezaji uliofaulu katika lugha zingine, ikijumuisha Erlang, Java, Lisp, Lua, Perl, Python, na Tcl.

Seva zote nyepesi za Wavuti ni ndogo na ni rahisi kusanidi kuliko Apache. Baadhi ni kasi zaidi kuliko Apache, baadhi ni haraka sana; kwa wengine, msisitizo ni juu ya usalama, operesheni isiyoingiliwa vipakuliwa vikubwa, upanuzi au uhifadhi wa kumbukumbu. Kwa hali yoyote, unaweza kuwaelewa kikamilifu, ambayo haiwezekani tena kwa Apache.

Seva ndogo sana za Wavuti ni pamoja na:

· Seva ya Duma, iliyo na chini ya mistari elfu moja ya C.

· DustMote, Seva ndogo sana ya Wavuti iliyotekelezwa katika msimbo mmoja wa chanzo wa Tcl wa takriban baiti 3000 kwa ukubwa.

· fnord inachukua chini ya 20K, kulingana na jukwaa na usanidi. Licha ya ukubwa wake mdogo, inasaidia mwenyeji wa kawaida, CGI na uendelee kuwa hai.

· ihttpd, na chini ya mistari 800 ya C, inaweza kutumika kurasa, ikiwa ni pamoja na CGI, kwa kutumia inetd.

· matto inasaidia CGI katika mistari 600 tu ya C.

· Mkorogo, licha ya ukubwa wake mdogo - takriban KB 30 - inaweza kutumia idadi ya ajabu ya lugha za uandishi, ikiwa ni pamoja na lugha maalumu inayotegemea mrundikano iitwayo Sy.

Ukubwa mdogo hauzuii matumizi makubwa ya seva hizi; fnord, kwa mfano, hutumikia maelfu viunganisho vya wakati mmoja.

· cghttpd ni seva ndogo ya Wavuti ambayo inaweza kuchukuliwa kuwa jaribio la kutumia vipengele visivyolingana vinavyopatikana katika mfululizo wa 2.6 wa kernels za Linux.

· gizahttpd- seva ya haraka ya HTTP/1.1 yenye nyuzi moja.

· Gatling Imeundwa mahsusi kwa utendaji wa juu. Inaauni FTP, IPv6, upangishaji pamoja, CGI, n.k.

· Kernux- moduli ya Linux kernel inayoendesha daemon ya HTTP.

· lighttpd- seva ya Wavuti ya tano maarufu zaidi ulimwenguni. Imeboreshwa kwa idadi kubwa ya miunganisho ya wakati mmoja: Hali ya kawaida ni kutumia lighttpd kama seva ambayo inapakua seva kuu ili kutoa maudhui tuli...

· Seva ya Wavuti ya LiteSpeed ni seva ya Wavuti nyepesi ya kibiashara yenye msisitizo maalum juu ya utendaji na usalama. LiteSpeed ​​​​Technologies Inc. inadai kuongeza kasi mara sita kwa maudhui tuli na utendakazi wa wastani zaidi kwa kurasa zilizofasiriwa.

· JWS ndogo, pia inajulikana kama tjws, ni seva ya Wavuti ya Java ambayo inashughulikia huduma, JSP, na maelfu ya miunganisho inayofanana, inayochukua kilobaiti 77. Mwandishi wake anaibainisha kama: "10% haraka kuliko Apache 2.x."

· Miayo- seva ya utendaji wa juu ya HTTP/1.1 iliyoandikwa kwa Erlang.

Seva nyingi za Wavuti hutekelezwa kama madarasa au maktaba iliyoundwa kupachikwa ndani maombi makubwa. Miongoni mwao ya kuvutia zaidi ni:

· EHS– "seva iliyopachikwa ya HTTP," darasa la C++ lililoundwa kwa ajili ya kupachikwa katika programu kubwa za C++; Na

· Seva ya Wavuti ya TCL iliyopachikwa, seva rahisi zaidi ya Wavuti inayoauni Uthibitishaji wa SSL na Msingi na ni haraka ajabu - kulingana na vipimo vya mwandishi, sio haraka kuliko lighttpd na AOLserver. Ina chini ya mistari mia ya Tcl.

Washa Lugha ya chatu Seva kadhaa za Wavuti zimetekelezwa ambazo zinajaza niches zisizo za kawaida, pamoja na:

· cdServer ni seva ndogo, rahisi ya Python HTTP "iliyoundwa kutumikia (tuli) yaliyomo kutoka kwa CD-ROM." Ina uwezo mdogo katika kutoa maudhui yanayobadilika. Tuna miradi kadhaa inayohusisha kuwasilisha "CD za moja kwa moja" zisizoharibika na zana kama vile cdServer ni muhimu kwao.

· edna ni seva ya Python MP3 ya busara kulingana na HTTP.

Kuna seva zingine za kuvutia nyepesi za Wavuti zilizotekelezwa katika Perl na lugha zingine zisizojulikana sana:

· Camlserv ni seva kamili ya Wavuti iliyoandikwa kwa ocaml na inayolenga "kurasa za Wavuti zinazoingiliana sana." Inafaa katika mistari elfu kadhaa ya ocaml, ambayo wengi wao wamejitolea sifa maalum kufanya kazi na MySQL na HTML.

· dhttpd magogo hupiga katika umbizo sawa na Apache. Ina mkalimani wa Perl aliyejengewa ndani kwa usaidizi wa CGI, upangishaji pepe, IPv6, usimamizi wa kipimo data na uwezo wa usalama.

· DNHTTPD iliyoandikwa kwa Perl kwa UNIX. Inasaidia majeshi virtual, Viunganisho vya SSL, CGI na zaidi.

· Jellybean- imeandikwa katika Perl Seva ya Perl Seva ya Kitu kulingana na HTTP.

· lns.http- Mazingira ya jumla ya Wavuti kulingana na LISP HTTP/1.1.

· Mongrel- maktaba na seva ya HTTP, iliyoandikwa katika Ruby.

· Nanoweb- Seva ya Wavuti ya haraka na thabiti iliyoandikwa katika PHP. Ina orodha pana ya vipengele, ikijumuisha utiifu kamili wa HTTP/1.1, udhibiti wa simu, uthibitishaji, upangishaji pepe, uoanifu wa SSL, n.k.

· Naridesh- Seva ya wavuti iliyoandikwa kwa Perl.

· OpenAngel- imeandikwa katika Perl. Usalama.

· Xavante- Seva ya Wavuti ya HTTP/1.1 iliyoandikwa kwa Kilua.

· XSP imeandikwa katika C # na hufanya kama mwenyeji wa ASP.NET.

Ulimwengu wa seva za Wavuti haujumuishi tu Apache na IIS, kuna nyingi zaidi. Chaguo pana ovyo wako ufumbuzi mbadala- ndogo ya kutosha kueleweka kikamilifu, lakini kwa haraka vya kutosha kwa matumizi makubwa.

Baada ya muda, msanidi programu yeyote wa wavuti ( mwanablogu, mbunifu wa wavuti au programu ya wavuti) itahitaji tovuti maalum ya mtihani ambapo inawezekana bila matatizo maalum kusoma maendeleo ya tovuti au kujaribu mradi mwingine wa wavuti. Baadhi ya wanaoanza hutumia rasilimali za upangishaji wao unaolipishwa na kuweka angalau tovuti mbili hapo. Mfanyakazi mmoja ( msingi), na nyingine ( ziada) kwa majaribio. Tovuti ya majaribio imefichuliwa vipimo mbalimbali (ufungaji na upimaji wa programu-jalizi nyingi, mada, hati na kadhalika).

Matokeo yake, kwa mpangilio huu, tovuti kuu ya uzalishaji inakabiliwa sana, kwa kuwa rasilimali nyingi za mwenyeji hutumiwa na mradi wa mtihani. Walakini, kuna njia nyingine ambayo itaruhusu bila hasara ( katika masuala ya fedha na rasilimali) fanya majaribio ya tovuti zako, na sasa tutazingatia njia hii.

Kwa nini isiwe hivyo?

Labda tayari unajua kuwa ili kuweka tovuti yako kwenye mtandao, unahitaji kujiandikisha jina la kikoa, kununua hosting, yaani. nafasi ya diski kwenye kompyuta fulani na uunganisho wa kasi ya juu, ambayo wanaweza kufanya kazi Nakala za PHP. Ili tovuti zifanye kazi kikamilifu, PHP na MySQL lazima zisakinishwe. Yote hii haipatikani kwenye kompyuta ya kawaida. Vinawezaje kuzinduliwa faili za HTML na PHP kwenye kompyuta yako?

Faili ya kawaida inaweza kufunguliwa kwa Notepad++ au hata kwa Notepad. Andika kitu ndani, kihifadhi kisha ufungue bila matatizo yoyote faili hili kwenye kivinjari chako na uone jinsi faili hii ingeonekana kwenye tovuti ya mwenyeji kwenye Mtandao. Hiyo ni, tayari tunaona ukurasa wa HTML unaofanya kazi. Ndani yake tunaweza kuunda miundo fulani, maudhui na kufuatilia mradi bila muunganisho wa Mtandao. Kimsingi, tayari tuna kila kitu. Ikiwa tunataka kukimbia PHP faili kwa kutumia kivinjari, basi hakuna kitu kitakachotufanyia kazi, kwa kuwa maandishi ya PHP katika mfumo wa uendeshaji wa Windows haitafanya kazi bila programu ya ziada.

Yote hii haipatikani kwenye kompyuta ya kawaida, na hivyo hakuna uwezekano wa kufanya kazi na miradi yako ya mtandao. Kwa hiyo, baadhi ya Kompyuta huanza kutumia pesa kwenye rasilimali za ziada za mwenyeji wao wa kulipwa. Lakini nini cha kufanya katika kesi hii? Jibu ni rahisi - zipo programu maalum, ambayo unaweza kusakinisha seva yako iliyojitolea moja kwa moja kwenye kompyuta yako.

Seva ni nini?

Nini kilitokea seva na ni tofauti gani seva ya ndani kutoka kwa kile kilicho kwenye mtandao. Kwa upande wetu, seva haimaanishi kompyuta, lakini seti maalum ya programu zinazohakikisha uendeshaji bora wa tovuti. Ili tovuti ifanye kazi, tutahitaji kuiweka kwenye eneo maalum lililowekwa kwenye seva (). Hiyo ni, tunapakua faili za tovuti kwenye kompyuta ya mbali. Hata hivyo, bila programu maalum za seva, faili zetu zilizopakiwa hazitaonekana kwenye mtandao. Sasa kwa madhumuni kama haya tutaunda seva mwenyewe kwenye kompyuta yako ya nyumbani.

Kwa hili tunahitaji programu maalum. Lakini ni zipi zinafaa zaidi na ni shida gani zinaweza kusababisha wakati wa kazi zaidi? Kwa taarifa yako, hapa chini ninaorodhesha seva bora za wavuti kulingana na umaarufu ulimwenguni kote. Hata hivyo, hii haina maana kwamba wanahitaji kusakinishwa mara moja. Nitaeleza kwa nini baadaye!

Orodha ya seva bora za wavuti

Hivi sasa kuna suluhisho kadhaa kwenye soko kutoka kwa wengi wazalishaji tofauti:

  • (tovuti - apache.org) ndio inayojulikana zaidi na maarufu seva ya bure mtandaoni. Ni ya kuaminika zaidi na rahisi. Seva haidai rasilimali za kichakataji na ina uwezo wa kuhudumia tovuti nyingi. Maombi yanapatikana kwa anuwai ya mifumo ya uendeshaji, pamoja na Unix, Linux, Solaris, Mac OS X, Microsoft Windows na wengine. Kwa sasa kutumia Apache ni 71%. Hata hivyo, hii programu tata, ambayo si kila anayeanza anaweza kushughulikia.

  • (tovuti - www.iis.net) ni seva nyingine ya kuaminika kutoka kwa Microsoft. Ilikaa katika nafasi ya pili kwa 14% ya matumizi ya mtandaoni. Baada ya kusanikisha programu, lugha mbili tu za programu zitasaidiwa ( VBScript na JScript) Walakini, unaweza kufungua vipengele vya ziada, kuweka kwa hili upanuzi muhimu. Kwa usanidi wa moduli kama hizo, utendaji wa seva hii huongezeka sana.

  • NGINX (tovuti - nginx.org/ru/) ndio seva maarufu zaidi ya wavuti Mtandao wa Kirusi. Ikilinganishwa na mbili za kwanza, ni rahisi zaidi na haina kazi zisizo za lazima. Pia inasifiwa kwa kuaminika kwake na kasi kubwa kazi. Msanidi wa bidhaa hii ni mshirika wetu Igor Sysoev. Mnamo 2004, alitoa toleo la kwanza la nginx. Sasa hivi programu hufunga seva tatu za wavuti maarufu zaidi ulimwenguni. Matumizi yake ni karibu 6.5%.

  • (tovuti - litespeedtech.com) - seva hii ya wavuti haina uwezo mkubwa, lakini ina sana kasi kubwa kazi. Ni mara 9 haraka kuliko Apache maarufu. Uangalifu mkubwa hulipwa kwa usalama ( ulinzi wake dhidi ya upakiaji wa mfumo, ukaguzi mkali wa maombi ya http, anti-ddos na mengi zaidi) LiteSpeed ​​​​inapatikana kwa Solaris, Linux, FreeBSD na Mac OS X. Programu ina kiwango cha matumizi cha 1.5%.

Bila shaka kuna wengine wengi programu zinazofanana, lakini sehemu ya matumizi na uaminifu wao kati ya watumiaji sio juu kama hizi. Kwa bahati mbaya, hutaweza kufanya hivi kwa programu moja tu. Sio tu kwamba inashauriwa kuzitumia kufanya kazi nazo miradi mikubwa, bado inaweza kuwa vigumu kusakinisha na kusanidi. Kwa kuongezea, pamoja na seva kama hizo, usakinishaji tofauti na usanidi wa programu zingine pia inahitajika ( kwa mfano, kufanya kazi na hifadhidata) Yote hii husababisha shida kubwa kwa watumiaji wengi. Nini cha kufanya katika kesi hii?

Vipengele vya Seva ya Karibu

Kwa sasa wapo wengi usambazaji mbalimbali, ambayo inaweza kurahisisha maisha kwa msimamizi yeyote wa tovuti anayeanza. Ni rahisi sana kusakinisha, ni rahisi kufanya kazi, hazihitaji sana rasilimali na zina vipengele muhimu vya programu kwa ajili ya utendaji bora.

Hiyo ni seva ya ndani- hii sio programu moja ( sio seva moja maalum ya wavuti), na mkusanyiko maalum unaojumuisha matoleo mepesi ya tata programu za seva. Kawaida mkusanyiko ni pamoja na: seva yenyewe ( zaidi Apache, lakini kunaweza kuwa na wengine), Mkusanyaji wa PHP (kwa msaada wake kivinjari kinaweza kusoma kanuni na kukusanya ukurasa), vipengele vya kufanya kazi na hifadhidata, wasakinishaji anuwai na programu zingine nyingi. Haya yote hurahisisha mambo zaidi kuliko ikiwa tulisakinisha na kusanidi kila programu kando.

Kwa kuongeza, moduli tofauti zinaweza kushikamana na vifurushi vya msingi vya seva za ndani ili kupanua utendaji. Zaidi kipengele muhimu ni kwamba kwenye seva zingine inawezekana kufanya kazi kutoka kwa gari linaloweza kutolewa. Kwa ujumla, makusanyiko hayo yanafaa sana kwa maendeleo ya haraka ya tovuti, kupima miradi midogo, na wakati mwingine hata kubwa.

Mapitio ya seva maarufu za ndani

Hapa kuna miundo ambayo inaweza kuwa na manufaa kwako:

  • (tovuti - dewer.ru) ni seva ya nyumbani isiyolipishwa ambayo imeundwa kufanya kazi na tovuti, programu za wavuti au kurasa za mtandao. Watengenezaji wake ni Dmitry Koterov na Anton Sushchev. Bidhaa hii ina mgawanyo muhimu kwa kazi iliyorahisishwa. Kwa mfano, hii inajumuisha Seva ya wavuti ya Apache kwa msaada mbalimbali, jopo la phpMyAdmin na MySQL kwa kufanya kazi na hifadhidata na programu zingine. Unaweza pia kufanya kazi kutoka kwa gari la flash linaloweza kutolewa. Kwa bahati mbaya Denwer inasaidia tu mfumo wa uendeshaji wa Windows.

  • XAMPP (tovuti - www.apachefriends.org/en/xampp.html) ni muundo maalum wa seva kutoka kwa marafiki wa Apache. Ugawaji unaohitajika hukuruhusu kuendesha seva kamili ya wavuti juu yake. Mpango huu Inasambazwa bila malipo na inasaidia kazi kwenye Windows, Solaris, Mac OS X na Linux. Pia kuna faida zifuatazo: seva ni maarufu kwa rahisi sana kiolesura cha mtumiaji, ambayo inafanya kuwa favorite kwa Kompyuta nyingi; kuna maonyesho mengi ya matoleo yaliyosasishwa; mchakato wa sasisho ni rahisi sana na wa kirafiki; Kuna moduli za ziada. Pakua toleo linalohitajika unaweza pia kutoka kwa tovuti nyingine rasmi - sourceforge.net/projects/xampp/files.

  • (tovuti - www.appservnetwork.com) ni seva bora kutoka kwa mtengenezaji wa Thai ambaye dhana yake ni ufungaji rahisi na kusanidi usambazaji wote kwa dakika 1. Toleo la kwanza la mkusanyiko ulifanyika mnamo 2001 na tangu wakati huo idadi ya watumiaji imekuwa ikiongezeka kila wakati. AppServ ni rahisi sana kufunga, inafanya kazi kwa utulivu na sio mbaya zaidi kuliko matoleo rasmi na ya mtu binafsi, na utendaji wake wa kuaminika hufanya iwezekanavyo kuunda seva kamili ya mtandao kwenye kompyuta yako.
  • (tovuti - vertrigo.sourceforge.net) ni nyingine nzuri na rahisi kusakinisha seva ya ndani. Mkutano ni rahisi sana, ina utendaji mzuri na inachukua nafasi ndogo ya diski. Kwa bahati mbaya, inafanya kazi tu kwenye Windows OS kwa sasa.
  • Seva ya Zend Toleo la Jumuiya (tovuti - www.zend.com) ni seva ya bure kutoka Zend, iliyoundwa kufanya kazi na programu za wavuti. Ina vipengele vyote muhimu vya kupeleka seva ya ndani kwa haraka kwenye kompyuta yako.

  • (tovuti - open-server.ru) ni seva ya ndani inayobebeka ambayo ina utendakazi wa hali ya juu kwa uundaji na uundaji wa tovuti na miradi mingine ya wavuti. Ina kiolesura cha lugha nyingi ( ikiwa ni pamoja na Kirusi) na imeundwa kufanya kazi kwenye Windows OS. Kazi kutoka kwa media inayoweza kutolewa inatumika. Seva hii nzuri sana na hutumika kama mbadala mzuri kwa Denver.

  • (tovuti - wampserver.com) - ujenzi mwingine mzuri na kiolesura cha Kirusi ( pia kuna lugha nyingine) Kuna orodha rahisi na ya wazi, na ufungaji rahisi na usanidi wa mkutano hausababishi shida fulani. Usanidi unaweza kufanywa bila kuathiri faili za usanidi, ambayo ni muhimu sana kwa wasimamizi wa wavuti wa novice. Seva inasambazwa bila malipo na inafanya kazi tu Jukwaa la Windows. Kwa bahati mbaya, toleo linalobebeka Bado.
  • (tovuti - easyphp.org) - mkutano rahisi sana na usaidizi wa lugha ya Kirusi. Mkutano huo ni wa kushangaza, hauna utendakazi mkubwa na unakusudiwa kujaribu miradi midogo. Kuna usaidizi wa kufanya kazi kutoka kwa media inayobebeka. Seva hii itatumika kama mbadala mzuri wa Denver.

Kwa hivyo hawa ndio walikuwa wengi zaidi mtandao maarufu seva ambazo zinastahili kuzingatiwa kati ya wasimamizi wa wavuti. Kama unaweza kuona, kuna mengi ya kuchagua kutoka hapa. Unaweza kupakua seva unayopenda na kujua kwa undani muundo wa kusanyiko lake kwenye tovuti rasmi ambazo zilionyeshwa katika maelezo. Ninapendekeza kwamba upakue miundo hii kutoka kwa tovuti rasmi pekee, kwa kuwa tovuti zingine zinaweza kuchapisha usambazaji usiofanya kazi au na virusi fulani. Sasa watu wengi hawatakuwa na hamu ya "kulazimisha" mwenyeji wao, kwani kwa programu kama hiyo mchakato wa kuunda tovuti na programu za wavuti utavutia zaidi na kusisimua! Kwa ujumla, soma na utekeleze!

(ukadiriaji 521, wastani: 5.00 kati ya 5)

Kusudi la hotuba: fafanua dhana ya "seva ya wavuti" na uunda wazo la uendeshaji wa utaratibu huu.

Katika hotuba iliyotangulia, tulielewa utendakazi wa itifaki ya HTTP. Sasa hebu tuangalie jinsi zana zinazofanya mwingiliano ulioelezewa hapo awali hufanya kazi. Utendaji wa programu za wavuti unategemea dhana kama vile seva ya wavuti. Seva ya wavuti ni programu inayokubali maombi yanayoingia ya HTTP, kuchakata maombi hayo, kutoa jibu la HTTP, na kuituma kwa mteja. Algorithm ya jumla ya seva ya wavuti inaweza kuwakilishwa kama ifuatavyo ( kijani vitendo ambavyo vinachakatwa na seva ya wavuti vinawekwa alama).

Baada ya mtumiaji kufikia rasilimali maalum Kwa kutumia itifaki ya HTTP, mteja (kawaida kivinjari) hufanya ombi la HTTP kwa seva ya wavuti. Kwa kawaida, jina la seva la mfano linatajwa (kwa mfano, "http://www.microsoft.com") - katika kesi hii, kivinjari kwanza hubadilisha jina hili kwa anwani ya IP kwa kutumia huduma za DNS. Baada ya hayo, ujumbe wa HTTP unaozalishwa hutumwa kwa seva ya wavuti kupitia itifaki ya HTTP. Katika ujumbe huu, kivinjari kinaonyesha ni rasilimali gani inayohitaji kupakuliwa na yote Taarifa za ziada. Kazi ya seva ya wavuti ni kusikiliza kwenye mlango maalum wa TCP (kawaida port 80) na kukubali ujumbe wote unaoingia wa HTTP. Ikiwa data inayoingia hailingani na umbizo Ujumbe wa HTTP, basi ombi kama hilo linapuuzwa na ujumbe wa makosa unarudishwa kwa mteja.

Katika kesi rahisi zaidi, wakati ombi la HTTP linapokelewa, seva ya wavuti lazima isome yaliyomo kwenye faili iliyoombwa kutoka kwa diski kuu, funga yaliyomo ndani ya majibu ya HTTP na kuituma kwa mteja. Ikiwa faili inayohitajika haipatikani kwenye diski kuu, seva ya wavuti itazalisha hitilafu inayoonyesha msimbo wa hali ya 404 na kutuma ujumbe huu kwa mteja. Aina hii ya uendeshaji wa seva ya wavuti kwa kawaida huitwa tovuti tuli. Katika kesi hii, hakuna nambari ya programu inayoendeshwa kwa upande wa seva isipokuwa msimbo wa programu seva ya wavuti yenyewe. Walakini, hali kama hizo za kazi zinazidi kuwa zisizofaa, na zinabadilishwa na programu kamili za wavuti. Tofauti kati ya programu hizi ni kwamba hati za HTML na rasilimali zingine hazihifadhiwa kwenye seva kama data isiyoweza kubadilika. Badala yake, seva huhifadhi msimbo wa programu ambao unaweza kutoa data hii wakati ombi linachakatwa. Kwa kweli, rasilimali zingine (kama faili mitindo ya kuteleza, picha, n.k.) zinaweza kuhifadhiwa kama maudhui tuli, lakini kuu kurasa za HTML zinazozalishwa wakati wa usindikaji. Katika kesi hii, seva ya wavuti, wakati wa kusindika ombi la HTTP, lazima iwasiliane na msimbo wa programu, ambayo inapaswa kuzalisha maudhui. Kwa kuzingatia hapo juu, algorithm ya operesheni ya seva ya wavuti itaonekana kama ifuatavyo.


Mojawapo ya kazi muhimu zaidi ambazo hutatuliwa wakati wa kujenga seva ya wavuti ni kazi ya kuhakikisha uboreshaji (yaani uwezo wa kuongeza idadi ya watumiaji wanaotumiwa) na usalama kutoka kwa mashambulizi ya nje. Kwa kuwa seva ya wavuti inafanya kazi katika mazingira wazi - Mtandao wa kimataifa - mara nyingi inaweza kupatikana kutoka popote. Hii inafanya seva ya wavuti kuathiriwa mizigo mizito na mashambulizi yanayoweza kutokea. Mashambulizi ya kawaida kwenye seva ya wavuti ni kuwasiliana na seva ya wavuti na idadi kubwa ya maombi na masafa ya juu. Katika kesi hii, seva ya wavuti haitaweza kushughulikia maombi yote haraka, na hii inaweza kuathiri utendaji wa seva ya wavuti kwa watumiaji halisi. Seva za wavuti zinazotumia msimbo fulani wa programu za nje zaidi ya msimbo wa programu wa seva ya wavuti yenyewe huathirika hasa na mashambulizi kama hayo. Kwa kawaida, ili kupambana na mashambulizi hayo, maombi yote yanayotoka anwani maalum ya IP. Kwa kuongezea, katika hali kama hizi, utunzaji unapaswa kuchukuliwa ili kuongeza msimbo wa maombi, kwa mfano, tumia caching - katika kesi hii, wakati wa kusindika kila ombi, mzigo kwenye processor ya kati itakuwa chini, ambayo inaweza kuwa ngumu sana kazi ya washambuliaji. .

Sio kawaida kwa tovuti nyingi huru kupangishwa kwenye seva moja ya wavuti. Zaidi ya hayo, tovuti hizi zote hutumia anwani sawa ya IP. Wale. seva ya wavuti iliyo na anwani moja tu ya IP inaweza kukaribisha tovuti kadhaa ndani yake, na kila tovuti kama hiyo itahusishwa nayo anwani yako mwenyewe(kwa mfano, seva moja ya wavuti inaweza kuwa mwenyeji wa tovuti zifuatazo: "microsoft.com", "gotdotnet.ru", "techdays.ru", nk). Je, hili linawezekanaje? Jambo hili linaitwa mwenyeji wa kawaida. Ili kuelewa jinsi hii inavyofanya kazi, hebu tuangalie tena mchakato wa mwingiliano kati ya mteja na seva. Kivinjari hutuma ombi la HTTP kwa anwani ya IP ya seva ya wavuti, ambayo inahusishwa na jina la kikoa. Azimio la anwani ya IP hutokea kwa kutumia Huduma za DNS. Hata hivyo, ingawa ombi linatumwa kwa kutumia anwani ya IP iliyopokelewa, mteja anabainisha kichwa cha ziada cha HTTP "Host" ambacho kinabainisha. jina la asili tovuti. Shukrani kwa habari hii, seva ya wavuti inaweza kutofautisha ufikiaji wa tovuti kadhaa na bado kutumia anwani sawa ya IP. Hii ni sana hatua muhimu, kwa sababu ikiwa anwani tofauti ya IP ilipaswa kusajiliwa kwa kila jina la kikoa, basi nafasi ya anwani ya itifaki ya IP (v.4) ingeisha haraka sana, na gharama ya kuandaa tovuti kwenye Mtandao wa kimataifa itakuwa ya juu zaidi. Ili kuifanya iwe wazi zaidi, hebu tuangalie jinsi ukaribishaji pepe unavyofanya kazi kwa kutumia mfano. Wacha tuseme una seva ya wavuti iliyo na anwani ya IP ya 85.51.210.22. Seva hii inakaribisha tovuti kadhaa: mysite1.com, mysite2.com, mysite3.com. Seva za DNS zimesanidiwa ili kila moja ya majina haya ya kikoa yaelekeze kwenye anwani moja ya IP, 85.51.219.22. Wacha tuone ni maombi gani ya HTTP ambayo kivinjari kitazalisha wakati wa kufikia kila tovuti. Wakati wa kufikia tovuti "mysite1.com" ombi la HTTP linaweza kuonekana kama hii:


Wakati wa kufikia tovuti "mysite2.com" ombi la HTTP litaonekana tofauti.


Wakati wa kuchanganua maombi ya HTTP, inaonekana wazi kuwa kichwa cha HTTP "Mpangishi" ni tofauti katika kila ombi. Kwa hivyo, inakuwa wazi kuwa seva ya wavuti huchanganua kichwa hiki na kutuma yaliyomo kwenye tovuti inayolingana kwa mteja. Utaratibu huu unaweza kuwakilishwa kimkakati kama ifuatavyo.


Mpango kama huo wa upangishaji mtandaoni unatumiwa na kampuni nyingi zinazohusika katika kupangisha tovuti kwenye Mtandao. Tangu katika kesi hii kwa moja seva ya kimwili inaweza kuwa mwenyeji wa idadi kubwa ya tovuti tofauti kabisa, basi njia hii ni moja ya gharama nafuu. Walakini, ndani ya upangishaji ulioshirikiwa kwa kawaida ni marufuku kuendesha huduma mbalimbali na huduma, na pia kuna kizuizi juu ya kiwango cha matumizi processor ya kati. Hii ina maana kwamba katika tukio ambalo tovuti hutumia rasilimali nyingi za seva, mmiliki wa tovuti anaombwa aidha kuboresha hadi mpango wa gharama kubwa zaidi (na rasilimali zaidi zilizotengwa), au ikiwa kiwango cha juu kinachoruhusiwa kimepitwa, tovuti itazuiwa kwa muda. . Kwa kuwa wakati mwingine kiasi kikubwa cha rasilimali kinahitajika kutoka kwa seva au ni muhimu kukimbia ndani ya seva hii maombi ya ziada au huduma, upangishaji pamoja hauwezi kutumika kila wakati. Katika kesi hii, kwa kawaida hukodisha seva iliyojitolea - ya kimwili au ya kawaida. Hata hivyo, hii ni aina ya gharama kubwa zaidi ya kupangisha programu za wavuti kwenye mtandao, hivyo ukaribishaji pepe hutumiwa mara nyingi.

Kama ilivyoelezwa hapo awali, hali rahisi zaidi ya seva ya wavuti ni kupokea ombi la HTTP, kulichakata, kusoma. faili inayotaka kutoka kwa gari ngumu, ikitoa majibu ya HTTP na kuituma kwa mteja. Hali hii ndiyo rahisi zaidi, hata hivyo, kwa ukweli inazidi kuwa ya kawaida. Ukweli ni kwamba kwa mbinu hii, maudhui ambayo huhamishiwa kwa mteja ni tuli (yaani, haibadilika kutoka kwa ombi hadi ombi). Hata hivyo, ikiwa unahitaji kujenga programu ya wavuti, basi maudhui ya ukurasa wa HTML ambayo huhamishiwa kwa mteja lazima yabadilike kulingana na hali mbalimbali za nje (vigezo vya ombi, yaliyomo kwenye hifadhidata, wakati wa usindikaji wa ombi, aina ya mtumiaji, nk). Katika kesi hii, ni muhimu kukimbia nje (kuhusiana na seva ya mtandao) msimbo wa programu ambayo inatekeleza mantiki ya programu ya wavuti. Nambari hii lazima iwekwe tofauti na seva ya wavuti yenyewe, kwani nambari ya programu itakuwa tofauti kutoka kwa programu moja hadi nyingine, lakini seva ya wavuti itakuwa sawa. Kwa hivyo, msimbo wa programu unaoshughulikia maombi ya HTTP na kutoa majibu ya HTTP unaweza kugawanywa katika sehemu mbili:

  • msimbo wa programu unaotekelezea kazi za huduma kwa mwingiliano kupitia itifaki ya HTTP (msimbo wa programu ya seva ya wavuti yenyewe);
  • msimbo wa programu unaotekelezea mantiki ya programu mahususi ya wavuti (mantiki ya biashara, ufikiaji wa DBMS, n.k.).

Kwa kuwa msimbo wa maombi ya wavuti kawaida huwekwa kwenye moduli tofauti na hutolewa kwa kujitegemea, taratibu za mwingiliano kati ya sehemu hizi mbili zinahitajika, i.e. kiolesura cha mwingiliano. KATIKA kwa kesi hii Kiolesura cha mwingiliano kinarejelea seti ya sheria ambazo seva ya wavuti na programu itaingiliana. Kwa kweli, chati ya uchakataji wa ombi inaweza kuonekana kama hii:


Kihistoria, kuna aina mbili kuu za kiolesura kati ya programu tumizi ya nje na seva ya wavuti - CGI na ISAPI.

CGI (Lango la Kawaida Kiolesura) ndiyo njia ya mwanzo ya mwingiliano kati ya seva ya wavuti na programu ya wavuti. Wazo kuu ambalo msingi wa CGI ni kwamba wakati ombi linalofuata la HTTP linafika, seva ya wavuti huanzisha uundaji mpya. mchakato na hupitisha data yote muhimu ya ombi la HTTP. Baada ya mchakato huu kukimbia, huisha, kupitisha matokeo kwenye seva ya wavuti. Kwa kuwa seva ya wavuti na programu ni michakato tofauti kutoka kwa mtazamo mfumo wa uendeshaji, basi njia za mawasiliano ya interprocess (IPC) hutumiwa kubadilishana habari kati yao - mara nyingi hizi ni vigezo vya mazingira, mabomba yenye jina, nk. Faida kuu ya CGI ni kwamba mchakato wa seva ya wavuti na programu zimetengwa kutoka kwa kila mmoja na katika kesi ya matatizo katika programu ya wavuti, ni mchakato wa maombi ambao utashindwa, wakati mchakato wa seva ya wavuti yenyewe utaendelea kufanya kazi.

Kwa upande mwingine, hitaji la kuunda mchakato mpya kila wakati linajumuisha ziada ya uundaji wa mchakato (uundaji wa mchakato ni operesheni ya gharama kubwa kutoka kwa mtazamo wa mfumo wa uendeshaji) na uhamishaji wa data katika mipaka ya mchakato. Ukweli huu ni shida kubwa na ina athari kubwa kwa uboreshaji wa programu ya wavuti (uwezo wa kuchakata kiasi kikubwa maombi yanayoingia).

ISAPI(API ya Seva ya Mtandao) - njia mbadala mwingiliano kati ya seva ya wavuti na programu ya wavuti. Tofauti na CGI, wakati wa kuingiliana ndani ya kiolesura cha ISAPI, ombi linalofuata linapofika, seva ya wavuti huanzisha uundaji mpya. mtiririko ndani ya mchakato kuu ambao seva ya wavuti inaendesha. Kwa kuwa kuunda thread ni operesheni ya chini ya gharama kubwa kutoka kwa mtazamo wa mfumo wa uendeshaji kuliko kuunda mchakato, maombi hayo huwa yanajitokeza zaidi katika mazoezi. Pia hurahisisha mwingiliano kati ya seva ya wavuti na programu tumizi ya wavuti kwa sababu hutumia nafasi moja ya anwani ndani ya mfumo wa uendeshaji (kwa kuwa msimbo wote unaendeshwa kwa mchakato sawa). Hata hivyo, katika kesi matatizo makubwa katika programu ya wavuti inayowasiliana na seva ya wavuti ndani ya ISAPI, seva ya wavuti pia inaweza kuwa katika hatari ya kusitishwa. Kwa kuwa seva ya wavuti na programu tumizi ya wavuti zinafanya kazi katika mchakato sawa, hii ndio kesi. Kwa hivyo, watengenezaji wa nambari ya seva ya wavuti inayounga mkono ISAPI wanapaswa kulipa kipaumbele maalum kwa suala hili.

Leo, njia ya kawaida ya mwingiliano kati ya seva ya wavuti na programu-tumizi ya wavuti ni kiolesura cha ISAPI, kwani hutoa utendaji bora zaidi katika suala la uendeshaji na uboreshaji. Walakini, wakati wa kuendesha programu nyingi za wavuti kwenye seva moja ya wavuti, kuna uwezekano wa programu moja kuathiri nyingine. Ikiwa tunazungumza juu ya kampuni zinazokaribisha programu za wavuti kwenye seva zao, basi hali inaweza kutokea ambapo tovuti za kampuni zinazoshindana zinapangishwa kwa wakati mmoja kwenye seva moja ya wavuti. Katika kesi hii, kinadharia, moja ya kampuni inaweza kupakia msimbo kimakusudi ambao ungevunja seva ya wavuti kwa hitilafu na, kwa hivyo, tovuti zote zinazopangishwa kwenye seva hii ya wavuti hazitapatikana. Ili kuzuia hali kama hiyo, mbinu ya pamoja hutumiwa - kwa kila programu dimbwi la maombi linaweza kuunda, ambalo ni. mchakato tofauti, ambapo nyuzi hufanya kazi kuchakata maombi yanayoingia ya HTTP kutoka kwa watumiaji. Katika kesi hii, ikiwa programu yoyote ina msimbo unaositisha mchakato kwa hitilafu, basi mchakato wa maombi haya pekee ndio utakomesha. Kwa kuongezea, kila dimbwi la programu lina seti ya nyuzi zilizoundwa mapema na zilizotayarishwa. Hii ni muhimu ili usipoteze muda kuunda thread wakati ombi linaloingia linakuja. Seti hii ya nyuzi zilizoundwa kabla inaitwa bwawa la thread. Kawaida, seva ya wavuti inafuatilia kila dimbwi la programu na ikiwa itashindwa, seva ya wavuti huanza tena mchakato wake.

Mbali na kazi zilizo hapo juu na taratibu za seva ya wavuti, kazi zake mara nyingi hujumuisha kazi za ziada zinazohusiana. Kazi hizi ni pamoja na uthibitishaji na uidhinishaji wa mtumiaji, kudumisha kumbukumbu ya seva (kutatua utendakazi wa seva ya wavuti), kusaidia tovuti kadhaa kwenye seva moja (upangishaji wa kawaida), usaidizi. miunganisho salama kupitia itifaki ya HTTPS, nk. Kazi hizi katika kila kesi maalum hutegemea utekelezaji wa seva ya wavuti.

Leo kuna idadi kubwa ya utekelezaji tofauti wa seva za wavuti. Mojawapo ya seva za wavuti maarufu na nyingi ni seva ya wavuti ya Apache ya chanzo wazi. Iliundwa kufanya kazi ndani Mazingira ya Linux, pia kuna utekelezaji wa kufanya kazi ndani ya Windows. Tofauti zingine nyingi zimejengwa juu yake, kama vile Apache Tomcat ya kuendesha programu za wavuti Msingi wa Java. Bidhaa nyingine, mbaya zaidi katika eneo hili ni Seva ya wavuti ya Microsoft Huduma za Habari za Mtandao (IIS), ambayo inaendesha ndani ya mfumo wa uendeshaji Mifumo ya Windows. Kwa kawaida, seva hii ya wavuti huendesha programu kulingana na ASP.NET (na teknolojia zinazohusiana), pamoja na programu za PHP na tovuti tuli. Wakati wa kuunda programu za wavuti kulingana na ASP.NET, tutatumia IIS 7. Hatimaye, kuna miradi mingine, ndogo ya kuendeleza seva za mtandao, kwa mfano Nginx. Mradi huu ulitengenezwa na mmoja wa watengenezaji wa Rambler ili kuboresha utendaji wa hii injini ya utafutaji. Baadaye, mradi huo ulifanikiwa sana hivi kwamba ulitumiwa katika programu zingine. Kwa kawaida, Nginx hutumiwa wakati ni muhimu kujenga miundombinu ya juu ya mzigo.

Muhtasari mfupi

Seva ya wavuti ni programu ambayo huchakata maombi yanayoingia ya HTTP na kutoa majibu ya HTTP. Katika hali rahisi, seva ya wavuti huhamisha kwa mteja yaliyomo ya faili ziko kwenye diski kuu ya seva. Inapohitajika kutoa majibu ya HTTP kulingana na mantiki fulani ya programu, msimbo wa programu ya nje huunganishwa. Ili kuunganisha msimbo wa programu ya nje, miingiliano ya CGI na ISAPI hutumiwa. Kwa sasa, inayoahidi zaidi ni utumiaji wa kiolesura cha ISAPI kwa sababu ya kiwango chake cha juu. Dimbwi la maombi limeundwa ndani ya seva ya wavuti (kwa kila programu ya wavuti, mchakato tofauti ndani ya OS, ambao unajumuisha nyuzi kadhaa kushughulikia maombi). Kuna idadi kubwa ya utekelezaji wa seva ya wavuti, na programu za ASP.NET kwa kawaida hutumia seva ya wavuti ya Microsoft Internet Information Services (IIS).

Maswali ya kudhibiti

  • Programu ya wavuti ni nini?
  • Kivinjari ni nini?
  • Eleza mzunguko wa kuchakata ombi kwa programu ya wavuti kutoka kwa mteja.
  • Kwa nini teknolojia za ukuzaji wa programu za wavuti zinahitajika (kama vile ASP.NET, PHP, Ruby On Rails, n.k.).
  • Itifaki ya HTTP inafanyaje kazi na ni ya nini?
  • Vichwa vya ujumbe wa HTTP ni nini na ni vya nini?
  • Mwili wa ujumbe wa HTTP ni nini?
  • Vichwa vinatenganishwaje na mwili wa ujumbe katika ujumbe wa HTTP?
  • Mbinu ya ombi la HTTP ni ipi?
  • Msimbo wa hali ya majibu ya HTTP ni nini?
  • Toa mifano ya vichwa vya HTTP kwa ombi la HTTP na jibu la HTTP.
  • Tofauti ni nini algorithms linganifu usimbaji fiche kutoka asymmetric?
  • Je, itifaki salama ya HTTPS inafanya kazi vipi?
  • Seva ya wavuti ni nini?
  • Kulingana na violesura vipi seva ya wavuti na programu ya wavuti inaweza kuingiliana?
  • Je, CGI ni tofauti gani na ISAPI?
  • Upangishaji wa pamoja ni nini?
  • Bwawa la maombi ni nini?
  • Taja utekelezaji maarufu zaidi wa seva za wavuti.
  • Ni seva gani ya wavuti ambayo programu za ASP.NET huendesha ndani?

Katika makala haya, tutajifunza seva za wavuti ni nini, jinsi zinavyofanya kazi, na kwa nini ni muhimu sana.

Utangulizi

Neno "seva ya wavuti" linaweza kurejelea maunzi na programu. Au hata sehemu zote mbili zinafanya kazi pamoja.

  1. Kwa mtazamo wa maunzi, "seva ya wavuti" ni kompyuta inayohifadhi faili za tovuti (nyaraka za HTML, mitindo ya CSS, faili za JavaScript, picha, n.k.) na kuziwasilisha kwa kifaa cha mtumiaji wa mwisho (kivinjari cha wavuti, n.k.) . d.). Imeunganishwa kwenye Mtandao na inaweza kufikiwa kupitia jina la kikoa kama mozilla.org.
  2. Kwa mtazamo wa programu, seva ya wavuti inajumuisha vipengele kadhaa vinavyodhibiti ufikiaji wa watumiaji wa wavuti kwa faili zilizopangishwa kwenye seva, kwa kiwango cha chini - hii Seva ya HTTP. Seva ya HTTP ni kipande cha programu kinachoelewa (anwani za wavuti) na HTTP (itifaki ambayo kivinjari chako hutumia kutazama kurasa za wavuti).

Katika kiwango cha msingi, wakati kivinjari kinahitaji faili iliyopangishwa kwenye seva ya wavuti, kivinjari huiomba kupitia itifaki ya HTTP. Wakati ombi linafikia seva ya wavuti inayotakiwa (vifaa), seva ya HTTP (programu) inakubali ombi, hupata hati iliyoombwa (ikiwa sivyo, inaripoti kosa) na kuirudisha, pia kupitia HTTP.

Seva ya wavuti isiyobadilika, au rafu, lina kompyuta (vifaa) iliyo na seva ya HTTP (programu). Tunaita hii "tuli" kwa sababu seva hutuma faili zilizopangishwa kwa kivinjari "kama ilivyo".

Seva ya wavuti yenye nguvu lina seva ya wavuti tuli na programu ya ziada, mara nyingi seva ya programu Na Hifadhidata. Tunaiita dynamic kwa sababu seva ya programu hurekebisha faili chanzo kabla ya kuzituma kwa kivinjari chako kupitia HTTP.

Kwa mfano, ili kutoa ukurasa wa mwisho unaotazama kwenye kivinjari, seva ya programu inaweza kujaza kiolezo cha HTML na data kutoka kwa hifadhidata. Maeneo kama MDN au Wikipedia yana maelfu ya kurasa za wavuti, lakini si halisi Nyaraka za HTML- Violezo vichache tu vya HTML na hifadhidata kubwa. Muundo huu hurahisisha na kuharakisha matengenezo ya programu ya wavuti na uwasilishaji wa yaliyomo.

Kujifunza kwa vitendo

Bado hakuna utafiti unaoendelea. .

Hebu tuzame ndani zaidi

Ili kupakia ukurasa wa wavuti, kama tulivyosema hapo awali, kivinjari chako hutuma ombi kwa seva ya wavuti, ambayo hutafuta nafasi yake ya kumbukumbu kwa faili iliyoombwa. Baada ya kupata faili, seva huisoma, huichakata kama inahitajika, na kuituma kwa kivinjari. Hebu tuangalie hatua hizi kwa undani zaidi.

Kupangisha faili

Kwanza kabisa, seva ya wavuti lazima iwe na faili za tovuti, yaani nyaraka zote za HTML na rasilimali zinazohusiana, ikiwa ni pamoja na picha, mitindo ya CSS, faili za JavaScript, fonti na video.

Kitaalam, unaweza kupangisha faili hizi zote kwenye kompyuta yako, lakini ni rahisi zaidi kuzihifadhi kwenye seva maalum ya wavuti ambayo:

  • daima juu na kukimbia
  • daima imeunganishwa kwenye Mtandao
  • ina anwani ya IP isiyobadilika (sio watoa huduma wote hutoa anwani tuli ya IP kwa uhusiano wa nyumbani)
  • kuhudumiwa na kampuni nyingine

Kwa sababu hizi zote, kupata mtoaji mzuri wa mwenyeji ni sehemu muhimu ya kujenga tovuti yako. Kagua ofa nyingi za kampuni na uchague inayolingana na mahitaji na bajeti yako (ofa mbalimbali kutoka bila malipo hadi maelfu ya dola kwa mwezi). Unaweza kupata maelezo ndani

Mara tu unapotatua tatizo lako la upangishaji, unachohitaji kufanya ni kupakia faili zako kwenye seva yako ya wavuti.

Mawasiliano ya HTTP

Pili, seva ya wavuti hutoa usaidizi wa HTTP. H yper t ext T uhamisho P rotocol - hypertext itifaki ya usafiri ) Kama jina linavyopendekeza, HTTP inabainisha jinsi ya kuhamisha maandishi ya maandishi (yaani, hati za wavuti zilizounganishwa) kati ya kompyuta mbili.

Itifaki ni seti ya sheria za mawasiliano kati ya kompyuta mbili. HTTP ni itifaki ya maandishi bila kuokoa hali.

Maandishi Amri zote ni maandishi rahisi yanayoweza kusomeka na binadamu. Haihifadhi hali Si mteja wala seva inayokumbuka miunganisho ya awali. Kwa mfano, kwa kutegemea HTTP pekee, seva haitaweza kukumbuka nenosiri uliloingiza au ni hatua gani ya muamala ulioko. Kwa kazi kama hizo, utahitaji seva ya programu. (Tutazingatia teknolojia hizi katika makala zijazo.)

HTTP huweka sheria kali za mwingiliano kati ya mteja na seva. Tutaangalia itifaki ya HTTP yenyewe katika makala ya kiufundi baadaye kidogo. Kwa sasa, inatosha kujua sheria hizi:

  • Kipekee wateja inaweza kufanya maombi ya HTTP, na kwa seva. Seva zina uwezo wa kujibu HTTP pekee maombi ya mteja.
  • Wakati wa kuomba faili kupitia HTTP, mteja lazima atengeneze faili .
  • Seva ya wavuti lazima kujibu kwa kila ombi la HTTP, angalau ujumbe wa makosa.

Kwenye seva ya wavuti, seva ya HTTP ina jukumu la kuchakata na kujibu maombi yanayoingia.

  1. Wakati wa kupokea ombi, seva ya HTTP hukagua kwanza ikiwa rasilimali hiyo iko kwenye URL iliyotolewa.
  2. Ikiwa ndivyo, seva ya wavuti hutuma yaliyomo kwenye faili kwa kivinjari. Ikiwa sivyo, seva ya programu hutoa rasilimali inayohitajika.
  3. Ikiwa hakuna yoyote ya hii inawezekana, seva ya wavuti inarudisha ujumbe wa hitilafu kwa kivinjari, mara nyingi "404 Haipatikani". (Kosa hili ni la kawaida sana hivi kwamba wabunifu wengi wa wavuti hutumia muda mwingi kubuni kurasa 404 zenye makosa.)

Maudhui Tuli na Yenye Nguvu

Kwa kusema, seva inaweza kutoa maudhui tuli au yanayobadilika. Tovuti zisizobadilika ndizo rahisi zaidi kutengeneza, kwa hivyo tunapendekeza ufanye tovuti yako ya kwanza kuwa tuli.

"Dynamic" inamaanisha kuwa seva huchakata data au hata kuizalisha kwa kuruka kutoka kwa hifadhidata. Hii hutoa kubadilika zaidi, lakini kiufundi ni vigumu zaidi kutekeleza na kudumisha, ambayo inafanya mchakato wa kuunda tovuti kuwa ngumu sana.

Hebu tuchukue ukurasa unaosoma sasa kama mfano. Kwenye seva ya wavuti ambapo inapangishwa, kuna seva ya programu ambayo inachukua maudhui ya makala kutoka kwa hifadhidata, kuitengeneza, kuiongeza kwa violezo vya HTML, na kukutumia matokeo. Kwa upande wetu, seva ya maombi inaitwa Kuma, imeandikwa katika lugha ya programu ya Python (kwa kutumia mfumo wa Django). Timu ya Mozilla iliunda Kuma kwa mahitaji maalum ya MDN, lakini kuna programu nyingi zinazofanana zilizojengwa kwenye teknolojia tofauti kabisa.

Kuna seva nyingi za programu huko nje kwamba ni ngumu kupendekeza moja tu. Baadhi ya seva za programu zimeundwa mahususi kwa kategoria maalum za tovuti, kama vile blogu, wikis, au maduka ya mtandaoni; nyingine, zinazoitwa CMSs (mifumo ya usimamizi wa maudhui), ni nyingi zaidi. Ikiwa unaunda tovuti inayobadilika, tumia muda kidogo kuchagua zana inayofaa mahitaji yako. Ikiwa hutaki kujifunza programu za wavuti (ingawa inafurahisha yenyewe!), basi hauitaji kuunda seva yako ya programu. Huu utakuwa uvumbuzi wa baiskeli nyingine.

Hatua zinazofuata

Kwa kuwa sasa unazifahamu seva za wavuti, unaweza:

  • soma jinsi ilivyo ngumu kufanya chochote kwenye wavuti
  • jifunze zaidi kuhusu aina mbalimbali za programu ambazo zinaweza kuwa muhimu kwa kuunda tovuti
  • kuelekea kwenye mazoezi: kwa mfano,.