Izrada web poslužitelja u sustavu Windows. Windows poslužitelj. Postavljanje IIS web poslužitelja. Povezivanje s objavljenom infobazom putem web preglednika

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Aplikacije i stranice razvijene u ASP.NET-u moraju biti smještene na web poslužitelju (u daljnjem tekstu IIS). Ovo je Windows dodatak odgovoran za hosting web aplikacija, paraleliziranje http zahtjeva, pohranjivanje korisničkih sesija i još mnogo, mnogo više.

Windows 2008 nema IIS prema zadanim postavkama, a prije nego što možete konfigurirati svoju stranicu, morate instalirajte IIS. Stoga je članak podijeljen u dva dijela:

Kako instalirati IIS 7 na Windows 2008

IIS 7 Application Server instalira se iz distribucijskog paketa operacijski sustav. Preporučljivo je instalirati IIS iz iste distribucije OS-a na kojoj je instaliran ovo računalo. Iz iskustva ću reći da nema presedana ispravan rad, u slučaju instaliranja IIS-a iz “ne-native” distribucije. Umetnite Windows 2008 disk u pogon i počnite instalirati IIS:

1. Pritisnite "Start" i desnom tipkom miša kliknite "Računalo", idite na "Upravljanje":

2. U upravitelju poslužitelja odaberite Komponente i kliknite Dodaj komponente:

3. U stablu odaberite "Web Server Tools (IIS)" i kliknite "Dalje":

Nakon toga će započeti instalacija IIS 7 s operativnog diska Windows sustavi 2008. Pričekajte da završi i ponovno pokrenite računalo. Svi! IIS instalacija je dovršena!

Kako konfigurirati IIS 7 na Windows 2008

Dakle, imamo web stranicu, nazovimo je Sigurnost. Predstavlja sigurnosni direktorij i skup datoteka unutar tog direktorija. Stranica ima početna stranica, koji bi trebao biti učitan prema zadanim postavkama. Nazovimo to index.aspx. Prvi korak je instalacija i registracija .Net Frameworka. Morate instalirati isti .Net Framework za koji je vaša stranica napisana. Verzija se može vidjeti u datoteci web.config vaše stranice. Pretpostavit ćemo da je naša stranica napisana u Net.Framework v.4.0.

Poseban članak posvećen je instaliranju i konfiguriranju Net.Frameworka Kako instalirati Asp.Net i registrirati ga u IIS. Ovdje ću ukratko opisati: da biste registrirali .Net Framework u IIS-u, trebate naredbeni redak iz direktorija C:\WINDOWS\Microsoft.NET\Framework\ verziju vašeg Frameworka\ pokrenite naredbu aspnet_regiis.exe -i;

Postavite sigurnosni direktorij u C:\Inetpub\wwwroot\. Ovo je radni imenik upravitelja internetskih informacijskih usluga.

Sada počnimo s postavljanjem IIS-a:

1. Pokrenite IIS Service Manager. Pritisnite "Start", "Run". U prozor koji se pojavi unesite inetmgr.exe i kliknite "OK":

2. Prije svega, kreirajmo grupu aplikacija za našu stranicu. Općenito, grupa aplikacija stvara se kako bi se odvojile aplikacije koje se izvode na različitim verzijama .Net Frameworka. U principu, ako imate samo jedno mjesto na svom računalu, možete preskočiti ovaj korak. U upravitelju internetskih informacijskih usluga desnom tipkom miša kliknite Grupe aplikacija, Novi izbornik, Grupa aplikacija.... U prozor koji se pojavi unesite naziv grupe aplikacija i kliknite U redu. Jer odlučili smo da je naša stranica napisana u .Net Framework v.4.0, tada ćemo našu grupu aplikacija nazvati "Net 4.0":

3. Nakon što smo naše web mjesto kopirali u C:\Inetpub\wwwroot, sigurnosni direktorij se pojavio u IIS upravitelju u Web stranicama. Kliknite desnom tipkom miša i odaberite "Pretvori u aplikaciju":

4. U prozoru koji se pojavi odaberite naš skup aplikacija i kliknite "U redu":

5. Na kartici “Dokumenti” trebate dodati našu glavnu stranicu. Zatim, kada pristupate stranici, nećete morati ići na http:// naziv_poslužitelja/Security/ndex.aspx, bit će dovoljno napisati http:// naziv_poslužitelja/Sigurnost i bit ćemo odvedeni na glavnu stranicu stranice. Na kartici "Dokumenti" izbrišite sve stranice koje su tamo standardno i dodajte svoje početna stranica index.aspx:

6. Ovo dovršava postavljanje IIS-a; sve što preostaje je konfigurirati prava pristupa sigurnosnom direktoriju. Otvorite Dijeljenje na kartici Pristup i dajte punu kontrolu grupi IIS_IUSRS i korisniku IUSR (oni se stvaraju kada instalirate IIS). Na kartici "Sigurnost" također dajte puni pristup navedenoj grupi i korisniku:

Sada možete pokušati otvoriti našu web stranicu. Otvorite svoj preglednik i unesite http:// u adresnu traku naziv_poslužitelja/Sigurnost, pojavit će se vaša početna stranica. Svi! Ako imate bilo kakvih pitanja, rado ću odgovoriti u komentarima na članak.

Ovaj opis prikladan je za sljedeća izdanja sustava Windows 7: Professional i Ultimate.

Instaliranje IIS web poslužitelja

Upravljačka ploča → Programi → Uključivanje ili isključivanje Windows značajki. Pronađite odjeljak na popisu - IIS usluge. Otvorite ga i odaberite potrebne komponente:

Osnovni set:

  • Sigurnost. Odaberite sve komponente osim "Provjera autentičnosti s podudaranjem certifikata...".
  • Komponente za razvoj aplikacija. Odaberemo samo CGI komponentu, to je potrebno za naknadnu instalaciju PHP-a.
  • Opće HTTP značajke. Označavamo sve kvadratiće.
  • Funkcionalna ispitivanja i dijagnostika. Odaberite "HTTP Logging" i "Request Monitor".
  • Funkcije poboljšanja performansi. Označavamo sve kvadratiće.
  • Alati za upravljanje web stranicama. Označite samo "IIS Management Console".

Kada su sve stavke odabrane, kliknite OK. Nakon dovršetka instalacije obavezno ponovno pokrenite sustav!

Sada prijeđimo na izradu web stranice. Otvorite Upravljačku ploču → Sustav i sigurnost → Administrativni alati → Upravljanje računalom (to možete učiniti brže: kliknite desnom tipkom miša na Računalo → odaberite Upravljanje iz izbornika). U prozoru koji se otvori s lijeve strane, klikom na mali trokutić, proširite grupu “Services and Applications” i otvorite “IIS Services Manager”. U susjednom prozoru "Veze" odaberite mapu "Sites" (ako tamo postoji zadana web stranica, možete je izbrisati), zatim u desnom prozoru "Akcije" kliknite na poveznicu "Dodaj web stranicu..." ( možete učiniti i ovo: desnom tipkom miša kliknite → odaberite "Dodaj web stranicu..." iz izbornika).

Zatim u prozoru koji se otvori trebate navesti naziv web stranice i lokaciju njegovih datoteka (prema zadanim postavkama to je c:\inetpub\wwwroot, ako ovaj put nije naveden prema zadanim postavkama, unesite ga ručno). Ostale opcije ostavljamo nepromijenjene.

Pritisnite OK. Na ovo osnovna postavka dovršeno. Sada trebate provjeriti funkcionalnost novostvorene stranice. Otvorite preglednik i unesite u adresnu traku: http://localhost. Ako sve radi ispravno, vidjet ćete stranicu sličnu ovoj:

Instaliranje PHP-a (FastCGI)

Prije početka instalacije potrebno je preuzeti PHP izdanje sa stranice http://windows.php.net/download/. Postoji nekoliko opcija za odabir. Trebamo oslobođenje VC9 x86 nije siguran za niti. Za rad s IIS-om u načinu rada FastCGI, ovo je najbrža i najstabilnija opcija. Preuzmite izdanje s instalacijskim programom, a ne zip arhivom (ovo je za one koji vole ručnu instalaciju). Imajte na umu da instalacijski program ne mora biti najnovija objavljena verzija PHP-a; ništa loše se neće dogoditi ako preuzmete stariju verziju.

Odaberite IIS FastCGI - sada je ovo jedina stabilna opcija za instaliranje PHP-a na IIS.

Nakon što instalacijski program završi, idite na IIS postavke. U principu, ovdje je potrebno učiniti samo jednu radnju - povećati prioritet php datoteka tako da se one prve obrađuju. Ponovo otvorite IIS Service Manager - desnom tipkom miša kliknite Računalo → odaberite “Manage” iz izbornika, otvorite “Services and Applications” → “IIS Service Manager” u lijevom prozoru. U prozoru desno od “Veze” kliknite na naziv naše stranice i u srednjem prozoru otvorite (kliknite 2 puta) odjeljak “Zadani dokument”.

Na popisu koji se pojavi trebate premjestiti index.php na početak (tj. na sam vrh - da biste to učinili, odaberite index.php i kliknite "Gore" desno):

Ako koristite Windows 7 64-bitni, trebate izvršiti još jedan korak. Otvorite odjeljak Skupovi aplikacija (u prozoru Veze). Označite DefaultAppPool i otvorite " Dodatne mogućnosti"(desnim klikom ili u krajnjem desnom stupcu "Akcije"). U odjeljku (Općenito) trebate pronaći opciju “Omogući 32-bitne aplikacije” i postaviti je na True. Ako su za postojeće stranice već stvoreni dodatni skupovi, tada za svako od njih trebate izvršiti istu operaciju.

Sada moramo testirati PHP. U korijensku mapu web stranice (c:\inetpub\wwwroot) trebate smjestiti index.php datoteku sljedećeg sadržaja:

Otvorite stranicu u pregledniku (http://localhost). Ako sve radi ispravno, vidjet ćete stranicu s informacijama o PHP instalaciji:

Otvorite stranicu za preuzimanje distribucije: http://www.mysql.com/downloads/mysql/

Za Win 32 preuzimanje: Windows (x86, 32-bit), MSI Installer
Za Win 64 preuzimanje: Windows (x86, 64-bit), MSI Installer

Nakon što kliknete na gumb Preuzmi, vidjet ćete obrazac za registraciju, možete ga preskočiti klikom na donju poveznicu (“Ne hvala, samo započnite moje preuzimanje!”).

Pokrećemo instalacijski program, nakon nekoliko ne baš informativnih prozora od nas se traži da odaberemo vrstu instalacije, odaberite Prilagođeno:

Prozor za odabir komponente (ako ste početnik, ostavite sve prema zadanim postavkama, kliknite Dalje i instalirajte):

Na kraju instalacije pojavit će se novi prozor s pitanjem o pretplati, kliknite križić u gornjem desnom kutu.

Završna faza instalacije. Označite opciju "Pokreni čarobnjak za konfiguraciju instance MySQL" i kliknite Završi:

Nakon dovršetka instalacije pokreće se My SQL poslužiteljČarobnjak za konfiguraciju instance (možete ga pokrenuti ručno iz Računalo → Programske datoteke → MySQL → MySQL Server 5.5 → bin → MySQLInstanceConfig.exe). Kliknite Dalje:

Odabiremo instalacijsku skriptu: Developer Machine - za instalaciju na kućno računalo (naš izbor), Server Machine - za instalaciju na poslužitelj, Dedicated MySQL Server Machine - za instalaciju na poslužitelj u potpunosti posvećen MySQL-u. Ove opcije prvenstveno utječu na količinu memorije koju koristi MySQL:

MySQL podržava dvije glavne vrste baza podataka (InnoDB - s podrškom za transakcije i MyISAM - bez transakcija). Multifunkcionalna baza podataka - bit će instalirana podrška za obje vrste baza podataka (naš izbor). Samo transakcijska baza podataka - bit će instalirana samo podrška za InnoDB. Samo netransakcijska baza podataka - bit će instalirana samo podrška za MyISAM.

Ako ste odabrali InnoDB podršku u prethodnom koraku, ovdje možete konfigurirati lokaciju InnoDB podatkovnih datoteka:

Podržava simultane veze. Podrška odlučivanju - do 20 istovremenih veza (naš izbor). Online obrada transakcija - do 500 veza. Ručna postavka - ručna instalacija broj veza.

Provjerite opcije "Omogući TCP/IP umrežavanje" i "Omogući strogi način". Ostavljamo nepromijenjeni broj priključka - 3306. Ako se planirate izravno spojiti na poslužitelj s drugih računala, označite opciju "Dodaj iznimku vatrozida za ovaj priključak" (otvorite priključak u vatrozidu za Windows).

Odaberite zadano kodiranje. Trenutno je najpametniji izbor UTF-8. Odaberite opciju Najbolja podrška za višejezičnost:

Obavezno označite opciju "Instaliraj kao Windows uslugu" (pokreni kao Windows uslugu). Označite "Automatski pokreni MySQL poslužitelj" ako je potrebno da se usluga automatski pokrene.

Završna faza. Postavljanje administratorske lozinke (root). Bolje je ne izgubiti ovu lozinku! Ne preporučuje se označavanje opcija “Omogući root pristup s udaljenih računala” i “Stvori anonimni račun” jer smanjuju sigurnost.

Napomena: ako ste prethodno instalirali MySQL, a zatim ga deinstalirali ili ponovno instalirali, tada će se pogreška 1045 pojaviti u posljednjoj fazi ( Greška u povezivanju). Da biste to izbjegli, morat ćete ukloniti MySQL, a zatim ukloniti skrivena mapa MySQL koji se nalazi u C:\ProgramData (ova mapa sadrži datoteke s podacima o korisniku). Nakon toga ponovite postupak instalacije i konfiguracije.

Sada preostaje samo provjeriti je li instalacija bila uspješna. Otvorite Start → Svi programi → MySQL → MySql Server 5.5 → MySQL 5.5 Command Line Client (uslužni program za rad s MySQL u naredbenom retku).

Zatim unesite administratorsku lozinku (root). Ako je lozinka ispravna, bit ćete preusmjereni na naredbeni redak (mysql>). Unesite naredbu: prikaži baze podataka; (točka-zarez na kraju je obavezan). Kao rezultat, trebali biste vidjeti popis baza podataka (barem dvije - information_schema i mysql). To znači da poslužitelj radi ispravno. Zatvorite naredbeni redak izvršavanjem naredbe izlaz.

Instalacija i osnovno podešavanje phpMyAdmin-a

Otvorite stranicu za preuzimanje http://www.phpmyadmin.net/home_page/downloads.php i odaberite arhivu koja završava na *all-languages.7z ili *all-languages.zip za preuzimanje. Napravite mapu phpmyadmin u C:\inetpub\wwwroot\ i tamo izdvojite preuzete arhivske datoteke.

Provjerimo kako radi. Otvorite preglednik i idite na adresu http://localhost/phpmyadmin/. Trebao bi se otvoriti sljedeći prozor:

Prije spajanja na MySQL morate izraditi konfiguracijsku datoteku.

Postoje dvije mogućnosti. Možete ručno urediti datoteku config.sample.inc.php i spremiti je kao config.inc.php (obje datoteke u korijenu vaše instalacije phpMyAdmin).

Ili upotrijebite grafički konfigurator. Da biste to učinili, otvorite sljedeću adresu u pregledniku: http://localhost/phpmyadmin/setup/

Ako vidite upozorenje "Nije moguće učitati ili spremiti postavke." Napravite konfiguracijsku mapu u korijenu vaše instalacije phpMyAdmina (to znači unutar mape phpmyadmin). Provjerite jesu li korisničkoj grupi IIS_IUSRS i korisniku IUSR dodijeljena prava pune kontrole u sigurnosnim postavkama konfiguracijske mape. Za one koji ne znaju kako to učiniti: desnom tipkom miša kliknite konfiguracijsku mapu → svojstva → kartica sigurnost → kliknite gumb “Promijeni…” → odaberite IIS_IUSRS (...) na popisu i označite “Potpuna kontrola” okvir ispod, kliknite na "Primijeni". Isto radimo i za IUSR. Ako takav korisnik nije na popisu, kliknite “Dodaj” → Napredno... → Traži → odaberite IUSR i kliknite OK, a zatim mu dajte puni pristup.

Vratimo se na konfigurator. Da biste konfigurirali parametre veze s MySQL-om, kliknite na gumb "Novi poslužitelj":

Najvažniji trenutak! Ako se spajate na MySQL poslužitelj instaliran na istom računalu (localhost), u stupcu “Server Host” localhost mora biti zamijenjen s 127.0.0.1 (isto vrijedi za ručno kreiranje config.inc.php). Dodajte red u datoteku C:\Windows\System32\drivers\etc\hosts: 127.0.0.1 localhost. U istoj datoteci izbrišite ili komentirajte (stavite znak # na početku retka) line::1 localhost (ako je prvobitno komentiran, ne morate ništa raditi s njim).

Spremamo postavke i automatski se vraćamo na prethodnu stranicu. Ovdje odabiremo zadani jezik - ruski, zadani poslužitelj - 127.0.0.1, kraj retka - Windows.

To je sve. Vraćamo se na stranicu http://localhost/phpmyadmin/. Sada se možete prijaviti na sustav kao root korisnik (unesite lozinku koju ste naveli prilikom postavljanja MySQL-a za root korisnika). Testiranje veze na MySQL. Ako je sve prošlo dobro (uspjeli ste se prijaviti u phpMyAdmin), izbrišite mapu konfiguracije.

1. Najprije izradite imenik Ispitno mjesto zadržati stranicu u imeniku c:\inetpub na poslužitelju. To se također može učiniti iz osnovnog OS-a: koristeći Explorer, otvorite direktorij \\win_web_srv\c$ i kreirajte mapu ili u naredbenom retku na poslužitelju pomoću naredbe mkdir.

2. U katalogu ispitno mjesto stvoriti datoteku index.html sljedeće sadržaje

Ispitno mjesto

Testno mjesto za eksperimente

3. U dosjeu domaćin u osnovnom OS-u registrirat ćemo korespondenciju između IP adrese našeg web poslužitelja i naziva nove stranice TestSite.

4. Pokretanje Upravitelj internetskih informacijskih usluga u osnovnom OS-u.

5. Spojite se na naš udaljeni web poslužitelj.

6. Na desnoj ploči "Veze" odaberite čvor "stranice", na lijevoj ploči "Akcije" izabrati "Dodaj web stranicu"

7. U prozoru koji se otvori definiramo glavne parametre stranice:

ime stranice - Ispitno mjesto(možete navesti proizvoljan, on će se koristiti samo za identifikaciju stranice unutar web poslužitelja)

direktorij sadržaja, fizički put – c:\inetpub\testno mjesto

Vezat ćemo pomoću zaglavlja hosta.

naziv čvora – Ispitno mjesto(ovo je ime pod kojim će posjetitelji pristupati stranici)

8. Dakle, stvorili smo novu stranicu i povezali je zaglavljem hosta (ime hosta).

9. Provjerite radi li stranica. U svom pregledniku, u URL traci, napišite http://testsite/ Trebali biste vidjeti stranicu index.html kreirana stranica.

10. Konfigurirajte "Zadani dokument"

11. Na spojnoj ploči u čvoru stranice odaberite našu stranicu Ispitno mjesto te u središnjem dijelu glavnog prozora odaberite stavku "Zadani dokument"

12. Može postojati više zadanih dokumenata, administrator može organizirati popis tih dokumenata, određujući time redoslijed kojim će se pretraživati ​​u katalogu. Ako zadani dokument nije pronađen, on se uzima u obzir postavljanjem parametra Pregledavanje imenika

13. Imajte na umu da su postavke za našu stranicu naslijeđene s više razine. Jer imamo samo stranicu index.html i još se ništa drugo ne očekuje, tada ćemo urediti ove postavke. Koristite opcije dostupne na ploči Radnje s desne strane:

· uklonite sve nazive datoteka s popisa osim index.html

· dodajte novi naziv default.html

· pomaknite datoteku index.html na sam vrh

14. Rezultat bi trebao biti nešto poput ovoga:

15. Nakon promjena, pogledajte glavni direktorij naše web stranice c:\inetpub\TestSite pojavila se datoteka web.config, koji sadrži promjene konfiguracije specifične za web mjesto koje se odnose samo na postavke Zadani dokument

16. Kreirajmo virtualni imenik.


17. U katalogu c:\inetpub\testno mjesto stvoriti poddirektorij na poslužitelju vd.

18. U IIS Manageru desnom tipkom miša kliknite naziv naše stranice i odaberite Ažuriraj

19. Imajte na umu da se mapa pojavila u strukturi stranice, ali to je više prava mapa, a ne virtualna. nalazi se u fizičkoj strukturi imenika naše stranice.

20. U svom pregledniku napišite http://testsite/vd u URL traci, primit ćete sljedeću poruku o pogrešci

21. Ova reakcija web poslužitelja objašnjava se činjenicom da u imeniku vd nema datoteka navedenih u postavkama Zadani dokument, i postavku Pregledavanje imenika naslijeđen sa stranice ima vrijednost parametra Omogućeno=Netočno, tj. pregledavanje imenika je zabranjeno.

22. Dopustite pregledavanje direktorija za mapu vd

23. Odaberite mapu u strukturi stranice VD, i na stranici Mogućnosti u grupi IIS odaberite stavku Prelistajte katalog Dakle, moći ćemo ne samo konfigurirati parametre za prikaz sadržaja direktorija, već prije svega omogućiti ovu značajku za mapu VD.

24. Kliknite na lijevu stranu ploče Radnje paragraf Upaliti. U središnjem dijelu prozora bit će dostupne za promjenu odgovarajuće opcije za prikaz sadržaja kataloga.

25. Osvježite stranicu u pregledniku

26. Imajte na umu da je datoteka automatski stvorena u VD direktoriju web.config, koji definira dopuštenja za pregledavanje imenika

27. Pokušavam stvoriti "pravu". Virtualni imenik izvan strukture imenika naše stranice. Na primjer, u korijenu diska S napravimo imenik VD_TestSite. Sukladno tome, za razliku od mape VD, ova mapa nije automatski uključena u strukturu naše stranice.

28. U IIS Services Manageru desnom tipkom miša kliknite na čvor naše stranice (TestSite) i odaberite "Dodaj virtualni imenik"

29. Sve što ostaje je odrediti parametre virtualnog imenika i naznačiti njegovu fizičku lokaciju

30. U prozoru "Dodavanje virtualnog imenika" Definiramo parametre virtualnog imenika: alias i fizičku lokaciju. Imajte na umu da alias ne odgovara nazivu mape. U retku preglednika u URL-u morat ćete koristiti navedeni alias.

31. Obratite pozornost na razliku između ikona dviju mapa u strukturi stranice

32. Katalogizirati c:\VD_TestSite stvoriti primitivnu html stranicu s imenom index.html

33. U vašem pregledniku, u URL traci, upišite http://testsite/vd1. Provjerite je li prikazana kreirana stranica. Općenito, virtualni direktorij može upućivati ​​na direktorij koji se nalazi čak i na drugom fizičkom računalu, u kojem slučaju je put određen UNC putem.

34. Pokušajmo puno eksperimentirati sa različiti putevi povezivanja mjesta.

35. Pokušavamo povezati stranicu s portom.

36. B Upravitelj internetskih informacijskih usluga, na ploči "Akcije" izabrati "Vezovi", onda "Dodati" i navedite nestandardni port 4545

37. U vašem pregledniku, u URL traci, napišite http://web_win_srv. Obavezno vidjeti stranicu Zadana web stranica, tj. zadano mjesto.

38. Pokušajmo sada napisati http://web_win_srv:4545 u URL redak. Trebala bi se otvoriti stranica naše web stranice – TestSite.

39. Dakle, dobili smo da je naša stranica povezana na dva načina:

port 80 i zaglavlje hosta TestSite

luka 4545

40. Pogledajmo postavke ograničenja za našu stranicu.

41. Na ploči "Akcije" odaberite stavku "Dodatne mogućnosti"

42. Čudno velike brojke vrijednosti parametra "Maksimum propusnost" i "Maksimalni broj veza" označavaju da nisu određena ograničenja.

43. Ograničenja se mogu promijeniti pomoću stavke "Ograničenja..." na ploči "Akcije"

44. Eksperimentirajmo sada s porukama o pogreškama kojima naš poslužitelj odgovara na netočne radnje posjetitelja ili aplikacija koje se nalaze na njemu.

45. U svom pregledniku pokušajte otvoriti očito nepostojeću stranicu na našoj web stranici, na primjer http://testsite/test.html. Jer ne postoji takva stranica, poslužitelj će vratiti poruku o pogrešci s kodom 404 . Ova se poruka može promijeniti i učiniti "prijateljskijom" prema posjetitelju.

46. ​​​​Pogledajmo sve stranice koje odgovaraju pogreškama za web mjesto TestSite, koje je naslijedilo s razine web poslužitelja

47. Pokušajmo promijeniti poruku kada se pojavi greška 404 .

48. Kreirajmo vlastitu html stranicu s imenom 404.htm i staviti u katalog c:\inetpub\TestSite\err.Sadržaj datoteke 404.htm

Greška 404

Datoteka nije pronađena

Nažalost, sadržaj koji ste tražili nije ovdje.

Pokušajte odabrati potrebne informacije odlaskom na glavnu stranicu stranice:

49. Na ploči Radnje odaberite stavku "Promijeniti…"

50. U svom pregledniku pokušajte otvoriti očito nepostojeću stranicu na našoj web stranici, na primjer http://testsite/test.html

51. Gledamo stranicu koju smo izradili posebno za pogrešku 404.

52. Sada eksperimentirajmo s povezivanjem na našu stranicu i radom s njom putem sigurnog HTTPS protokola temeljenog na SSL certifikatima.

53. Pogledajmo certifikate koji su prisutni na našem lokalnom računalu (osnovni OS) i web poslužitelju. Da bismo to učinili, koristit ćemo odgovarajući snap-in MMC upravljačke konzole.

54. Pokrenite upravljačku konzolu iz naredbenog retka cmd.

55. Dodajmo opremu koja nam je potrebna.

Datoteka –> Dodaj ili ukloni dodatak

56. S popisa dostupne opreme odaberite "certifikati" i pritisnite tipku "Dodati".

57. U prozoru koji se otvori odaberite opciju "računalni račun", kliknite "Unaprijediti" I "Spreman"

58. Nakon toga, oprema će se pojaviti na popisu "Odabrana oprema...", kliknite za dovršetak "U REDU"

59. Na isti način dodajte snap-in na istu konzolu "certifikati" za udaljeni web poslužitelj. Samo tijekom postupka postavljanja navedite naziv udaljenog web poslužitelja.

60. Tako dobivamo pristup upravljanju certifikatima koji se nalaze u pohrani na lokalnom računalu (osnovni OS) i udaljenom web poslužitelju.

62. Da biste radili koristeći HTTPS protokol, morate imati certifikat poslužitelja, a ovaj certifikat mora biti certificiran od strane certifikacijskog tijela. U sklopu laboratorijskog rada nećemo se “zamarati” izradom “punopravnog” certifikata koji bi bio ispravan za korištenje. Potvrdit ćemo valjanost certifikata za naš web poslužitelj sa samopotpisanim korijenskim certifikatom, koji ćemo sami izraditi i prenijeti u pouzdanu pohranu korijenskih certifikata na lokalnom računalu (osnovni OS). Jasno je da ovo "nije sportski" i da se ne može koristiti u stvarnom životu, ali za naše eksperimente bit će sasvim u redu. To je posljedica činjenice da u našoj laboratorijskoj mreži postoji previše konvencija i ne postoji glavni Certification Authority ili barem funkcionalni kontroler domene.

63. Još jedna prepreka je uzrokovana instalacijskim načinom web poslužitelja – Server Core, koji nema “IIS Services Manager”, tako da se sve radnje konfiguracije provode uglavnom daljinski ili u načinu naredbenog retka. Prilikom daljinskog upravljanja IIS-om pomoću IIS Managera, nema pristupa funkciji upravljanja certifikatom za IIS (za usporedbu, pogledajte slike u nastavku, snimke zaslona s web poslužitelja u načinu pune instalacije). Ali mi ne tražimo lake načine.

64. Dakle, sve certifikate stvaramo pomoću naredbenog retka. Za to ćemo koristiti uslužni program makecert.exe iz Windows SDK-a za Windows Server 2008 i .Net Framework 3.5

65. Napravite samopotpisani korijenski certifikat. Na web poslužitelju u naredbeni redak (cmd) unesite naredbu

makecert.exe –ss root –sr localMachine –n “CN=TestCompany” -eku 1.3.6.1.5.5.7.3.1 –r

–ss korijen specificira da će se certifikat kreirati u pouzdanom spremištu korijenskih certifikata

–r– izraditi samopotpisani certifikat

–eku 1.3.6.1.5.5.7.3.1– identifikator certifikata za autentifikaciju poslužitelja; za klijenta morate koristiti provjeru autentičnosti klijenta (1.3.6.1.5.5.7.3.2)

66. Izradite certifikat za web stranicu, potpisan našim korijenskim certifikatom. Važno je da vrijednost parametra CN točno odgovara URL-u naziva web-lokacije. Na primjer, generirani certifikat vrijedit će samo za web mjesto za testiranje, ali neće vrijediti za www.sitesite.

makecert –pe –ss my –n “CN=testsite” –b 01/01/2013 –e 01/01/2036 –sky exchange –in “TestCompany” –is root –eku 1.3.6.1.5.5.7.3.1 – sr localMachine

67. Kao rezultat izvršenih manipulacija, imamo kreirani korijenski certifikat u pohrani “Trusted Certification Authorities” i vlastiti certifikat za web stranicu u pohrani “Personal”

68. Pronađite ove certifikate sami u upravljačkoj konzoli osnovnog OS-a.

69. Otvorite "IIS Services Manager" i povežite testnu web stranicu kako biste osigurali da joj se može pristupiti putem HTTPS protokola. Imajte na umu da prilikom povezivanja odabiremo HTTPS protokol i kao SSL certifikat označavamo certifikat koji smo izradili s nazivom "testno mjesto"

70. U pregledniku pokušavamo pristupiti testnoj stranici koristeći HTTPS protokol.

https:\\testno mjesto

71. Napominjemo, jer organizacija “TestCompany” nije poznata našem lokalnom računalu, tada je preglednik izdao upozorenje

72. Unatoč upozorenju, nastavljamo raditi sa stranicom.

73. Da bi sve bilo lijepo, moramo postaviti korijenski certifikat naše testne organizacije (TestCompany) u pouzdanu pohranu korijenskih certifikata na lokalnom računalu (osnovni OS). Izvezimo korijenski certifikat u datoteku (na primjer, TestCompany.cert) pomoću upravljačke konzole.

74. Uvezimo certifikat iz datoteke TestCompany.cert u pouzdanoj spremištu korijenskog certifikata na lokalnom računalu (osnovni OS).

75. Otvorimo ponovo naše testno mjesto u pregledniku, koristeći HTTPS protokol za pristup. Vidimo da je identifikacija certifikata bila uspješna.

76. Pokušajte koristiti HTTP protokol za rad s testnim mjestom.

http:\\testno mjesto

77. Vidimo da stranica može obraditi i HTTP i HTTPS zahtjeve. Za zabranu korištenja HTTP protokola, te za obradu svih zahtjeva samo putem HTTPS protokola, morate otići na postavke web stranice "SSL postavke" odaberite opciju "Zahtijevaj SSL". Osim toga, ovdje možete konfigurirati ponašanje web stranice s obzirom na SSL certifikat klijenta.

78. Sada pokušavamo pristupiti testnoj stranici koristeći HTTP protokol. Vidimo da je pristup odbijen.

79. Ako pokušamo upotrijebiti SSL certifikat izdan za stranicu TestSite za drugu stranicu (na primjer, za zadanu stranicu), primit ćemo poruku o pogrešci u prozoru preglednika.

80. Sami vežite web mjesto prema zadanim postavkama za korištenje HTTPS protokola i SSL certifikata kreiranog za web mjesto TestSite i osigurajte da se pojavi pogreška.

81. Napravite vlastiti SSL certifikat za zadanu stranicu i promijenite vezanje za zadanu stranicu da ispravno radi koristeći HTTPS protokol.

82. I za kraj ono najzanimljivije...

83. Pružit ćemo mogućnost ugošćavanja stranica kreiranih pomoću PHP-a na našem web poslužitelju.

84. Prije svega, provjeravamo je li naš CGI web poslužitelj podržan. Uvjerite se da tijekom instalacije nije instalirana IIS-CGI komponenta

oklist | više

85. Instalirajte IIS-CGI modul

Obično, kada se govori o web poslužitelju, misli se na rješenja temeljena na Linux platformi. Ali ako se vaša infrastruktura temelji na Windows Serveru, onda bi bilo logično koristiti IIS web poslužitelj. Suprotno uvriježenom mišljenju, ovo je vrlo popularna platforma koja vam omogućuje rad s najpopularnijim CMS-om i ima širok raspon sustava dizajniranih za rad posebno na Windowsima i IIS-u.

Nedvojbena prednost IIS-a je njegova bliska integracija s drugim Microsoftovim tehnologijama i razvojnim alatima. Konkretno, web rješenja za IIS mogu iskoristiti bogate mogućnosti .NET-a i lako interoperirati s aplikacijama za stolna računala na toj platformi. Ako vas to još ne zanima, na usluzi vam je širok izbor gotovih CMS-ova, uključujući one napisane posebno za IIS. Danas ćemo pogledati kako instalirati i konfigurirati IIS za rad s web rješenjima temeljenim na ASP.NET-u te instalirati jedan od popularnih CMS-ova za ovu platformu.

Da biste instalirali web poslužitelj na Windows platformu, idemo na snap-in Uloge V Upravitelj poslužitelja i odaberite instalacijske uloge web poslužitelj (IIS) I Poslužitelj aplikacija.

Ali nemojte žuriti s klikom na Dalje, s lijeve strane, ispod naziva svake uloge, opcija je dostupna Usluge uloga, idite na njega i postavite sljedeće opcije za aplikacijski poslužitelj: podrška web poslužitelja (IIS), dijeljenje TCP porta i aktivacija putem HTTP-a.

A za web poslužitelj instalirajte uslugu FTP poslužitelja.

Zatim instalirajte odabrane uloge. Da biste provjerili funkcionalnost IIS-a, unesite IP adresu vašeg poslužitelja u svoj preglednik, trebali biste vidjeti standardnu ​​stranicu web poslužitelja.

Sada prijeđimo na postavljanje poslužitelja, za ovo ćemo otvoriti Upravitelj internetskih informacijskih usluga(nalazi se u Start - Administracija).

Prije svega, stvorimo novu stranicu, da biste to učinili, kliknite desnom tipkom miša na stavku Web stranice u bočnom izborniku IIS Managera i odaberite Napravite novu stranicu.

U prozoru koji se otvori navedite naziv web-mjesta, put do korijenske mape (prema zadanim postavkama korisnička se web-mjesta nalaze u C:\inetpub\wwwroot), koju prvo treba kreirati i navesti naziv hosta (naziv domene stranice), u našem slučaju iissite.lokalni

Ne zaboravite dodati A-zapis s nazivom vaše stranice na DNS poslužitelj ili upisati potrebne retke u host datoteke onih radnih stanica s kojih ćete pristupiti stranici

U načelu, već možete smjestiti web-stranice u mapu web-mjesta i pristupiti im putem preglednika, ali da biste u potpunosti radili s web-mjestom, FTP pristup njemu neće naškoditi. Da biste to učinili, desnom tipkom miša kliknite naziv svoje web stranice u bočnom izborniku i odaberite Dodajte FTP publikaciju

Zatim odredite vezanje FTP usluge na mrežna sučelja i priključke, a također konfigurirajte sigurnosne postavke. Ako ćete koristiti SSL, imajte na umu da će vam trebati certifikat, ali ako ćete FTP pristup koristiti samo za vlastite potrebe, možete proći i sa samopotpisanim certifikatom. Ne zaboravite označiti okvir za automatsko pokretanje FTP stranice.

Na sljedećoj stranici navedite parametre pristupa poslužitelju; preporučujemo da navedete određene korisnike koji će raditi s ovim mjestom.

Web poslužitelj je konfiguriran i možete ga koristiti za hostiranje HTML stranica, međutim, moderne stranice koriste DBMS za pohranu svojih podataka, pa je sljedeći korak instalacija MS SQL Express 2012, čije su mogućnosti više nego dovoljne za naše zadatke . Instalacija se izvodi sa zadanim vrijednostima, osim Način provjere autentičnosti, na koje treba prijeći Mješoviti način rada i postavite lozinku za superkorisnika SQL poslužitelja sa.

Sada pokušajmo instalirati bilo koji popularni CMS stvoren na temelju ASP.NET tehnologije; širok izbor takvih rješenja predstavljen je u galeriji Microsoftovih web aplikacija. Imajte na umu da ćete klikom na gumb za preuzimanje dobiti paket za instalaciju putem Web PI; za instalaciju na IIS morat ćete otići na web mjesto programera i preuzeti cijeli paket sa CMS-a

Instalirat ćemo Orchard CMS, za preuzimanje paketa slijedite link i odaberite Preuzmi kao zip, raspakirajte dobivenu arhivu i prenesite sadržaj mape Orchard u korijen web mjesta.

Ovaj CMS se temelji na ASP.NET 4, tako da ćemo konfigurirati našu stranicu da koristi potrebne tehnologije. Da biste to učinili, desnom tipkom miša kliknite naziv stranice u bočnom izborniku i odaberite Upravljanje web stranicama - napredne opcije

U prozoru koji se otvori promijenite parametar Skup aplikacija, označavajući tamo ASP.NET v.4

Zatim instalirajte potrebna prava u mapu web mjesta, korisniku IIS_IUSRS morate dodati mogućnost pisanja i mijenjanja sadržaja ove mape.

Također, ne zaboravite stvoriti bazu podataka za web mjesto, da biste to učinili, idite na SQL Server Management Studio te desnim klikom na stavku Baza podataka u bočnom izborniku izradite novu bazu podataka.

Prošle godine sam morao intervjuirati oko 10-15 kandidata za poziciju srednje kvalificiranog ASP.NET web programera. Kao pitanja "za popunjavanje" ili "sa zvjezdicom", tražio sam da kažem što se događa s HTTP zahtjevom od trenutka kada stigne na 80. port poslužitelja dok se kontrola ne prenese na kod aspx stranice. Statistika je bila deprimirajuća: nitko od kandidata nije uspio proizvesti ništa razumljivo. I za to postoji objašnjenje: ni u MSDN-u s technetom, ni na specijaliziranom resursu iis.net, ni u knjigama a-la “ASP.NET za profesionalce”, ni na blogovima ovoj se temi ne pridaje dužna pozornost - informacije moraju prikupljati gotovo malo po malo. Čak poznajem ljude koji su odlučili napisati vlastiti web poslužitelj (Igor, Georgy, zdravo!) kako ne bi morali razumjeti kako IIS radi. Jedini razuman članak je “Uvod u IIS arhitekture” Reagana Templina. Ali također ostaje na periferiji interesa aspiranata.

Iako mene osobno više ne zanimaju toliko čisto tehnička pitanja, odlučio sam skupiti svoje nagomilano iskustvo, iskopati zanimljive detalje na internetu i prenijeti ovo sveto znanje masama prije nego što zastari. Dopustite mi da odmah napomenem da je članak više fokusiran na IIS 7.x, ponekad će biti grana oko 6. Nisam se susreo s verzijom 8 u svom radu, pa sam je odlučio zanemariti u ovom članku. Ali siguran sam da će čitatelj lako razumjeti osam, nakon što je savladao materijal predstavljen u nastavku.







1. Generalni plan

Dakle, krenimo od kraja, a zatim pogledajmo pojedine aspekte malo pobliže.
U literaturi na engleskom jeziku proces obrade zahtjeva u IIS-u naziva se “request processing pipeline” - nešto poput “request processing pipeline”. U opći nacrt prikazano je na slici ispod za http zahtjev.

Riža. 1. Cjevovod za obradu HTTP zahtjeva (IIS 7.x).

Dakle, http zahtjev ide niz "montažni pojas" kroz sljedeće:

1. Preglednik pristupa web poslužitelju na određenom URL-u, na strani poslužitelja zahtjev presreće upravljački program HTTP.SYS.
2. HTTP.SYS kucanje na W.A.S. za dohvaćanje informacija iz spremišta konfiguracije.
3. Servis W.A.S. zahtijeva konfiguraciju iz repozitorija - iz datoteke u IIS mapi (applicationHost.config).
4. Jer ovaj zahtjev primljene putem informacija o konfiguraciji HTTP protokola prima usluga W3SVC(aka WWW usluga na slici), ove informacije sadrže podatke o skupu aplikacija i drugim parametrima stranice.
5. Servis W3SVC koristi ove podatke za konfiguraciju HTTP.SYS.
6. Servis W.A.S. pokreće proces W3WP.exe za skup aplikacija ako još nije pokrenut.
7. U nastajanju W3WP.exe pokrenuta je aplikacija web stranice koja zapravo generira i vraća odgovor upravljačkom programu HTTP.SYS.
8. HTTP.SYSšalje odgovor pregledniku.

U principu, samo ovaj dijagram dovoljan je za prolazak intervjua u većini tvrtki i dobivanje općenite ideje o IIS arhitekturi. Ali ako niste došli ovamo radi predstave, onda nastavite dalje.

2. Krupni plan

Sada pogledajmo pobliže svaku od spomenutih komponenti.
2.1. HTTP.SYS
Na razina transporta IIS koristi slušatelje protokola koji se nalaze na vrhu TCP/IP stoga. Nama najzanimljivija komponenta ove vrste je upravljački program sustava HTTP.sys, koji je ugrađen u jezgru OS-a i radi s HTTP i HTTPS protokolima, registrira se za slušanje svih priključaka na koje će stići zahtjevi prema stranicama u IIS-u.

HTTP.sys, ugrađen u jezgru, bio je nov u IIS-u 6, zamjenjujući Windows Socket API - komponentu presretanja HTTP i HTTPS zahtjeva na korisničkoj razini u IIS-u za više od ranije verzije. Vjerojatno je upravo integracija drajvera u kernel razlog zašto je verzija IIS-a usko povezana s verzijom za Windows.

Vozač prihvaća sve dolazne zahtjeve i preusmjerava ih na željeni skup aplikacija. Ako je iz nekog razloga radni proces u kojem se nalazi potrebno spremište zaustavljen (kvar, istek vremena mirovanja, promjena konfiguracije, itd.) ili još uvijek radi, tada HTTP.sys pohranjuje dolazne zahtjeve u red čekanja posebno određen za svaki skup. Dakle, zahtjevi korisnika ne nestaju nigdje i ne primjećuju nikakve smetnje u radu stranica koje pokreću IIS.

HTTP.sys također može predmemorirati odgovore (detaljnije - Instance u kojima HTTP.sys ne predmemorira sadržaj), tako da se neki zahtjevi obrađuju bez prijenosa na razinu aplikacije, a također izvodi početno analiziranje URI zahtjeva i njegovu provjeru valjanosti u u skladu s RFC 2396 (nešto - što se ovdje može naučiti - upotreba posebnih znakova poput "%" '.' i ':' u IIS URL-u) i bilježenje zahtjeva/odgovora.

Neke postavke HTTP.sys premještene su u sustav Windows registar(za više detalja pogledajte postavke registra Http.sys za Windows). Usput, tamo – u registru – možete vidjeti uobičajeno mjesto registracije našeg građanina: %SystemRoot%\system32\drivers\http.sys.

Iskreno govoreći, u procesu pisanja ovog članka i sam sam otkrio neke detalje. Na primjer, predmemorija odgovora na razini upravljačkog programa HTTP.sys. To mi je pomoglo da objasnim jedan slučaj čudnog, kako mi se tada činilo, fenomena u ponašanju IIS-a. Prodavci su postavili swf karticu na web mjesto prije sljedećeg praznika, ali tada im se nije svidjelo nešto u nazivu datoteke i preimenovali su je. Međutim, stranica je nastavila izdavati razglednicu na starom URL-u, a čak ni brisanje predmemorije preglednika nije pomoglo. Već sam se povezao ovdje, ali niti ponovno pokretanje web stranice i cijelog skupa aplikacija, niti pristupanje web stranici zaobilaženjem korporativnog proxy poslužitelja nije dalo očekivani rezultat. Ali sada znamo tko je kriv.
2.2. Usluga izdavanja na svjetskoj mreži (W3SVC)
Ova usluga (u specifikacijama skraćeno kao WWW usluga) uvedena je u IIS 6 kao zasebna komponenta za rad s HTTP/HTTPS protokolima i upravljanje tijekovima rada aplikacije i obavljala je sljedeće funkcije:
  • Administracija upravljačkog programa HTTP.sys.
  • Upravljanje radnim procesom.
  • Praćenje metrike izvedbe web stranice.
Ova usluga radi u sustavu Windows Server 2003 u kontekstu procesa Svchost.exe (postavke se mogu vidjeti u registru HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3Svc) za razliku od svih drugih IIS servisa, koji se izvode u kontekstu procesa Inetinfo.exe, a implementiran je u Iisw3adm.dll.

U IIS 7.x, funkcija upravljanja procesima premještena je u zasebnu uslugu - WAS (vidi paragraf 2.3) kako bi se univerzalizirala arhitektura. Sada je WWW usluga u biti postala jedan od adaptera, specijaliziran za HTTP/HTTPS protokole - radeći na vrhu HTTP.sys upravljačkog programa. Međutim, WWW usluga ostaje temeljna komponenta IIS-a, pa se njezino konfiguriranje razlikuje od konfiguriranja adaptera za druge protokole (više o tome ovdje); radi u istom tijeku rada kao i WAS i implementiran je u istoj knjižnici (slika 2).


sl.2. Tijek rada s uslugama W3SVC i WAS.

Budući da govorimo o adapterima za slušatelje protokola (protocol listener adpater), zastanimo malo i vidimo što su oni. U principu, IIS 7.x može se konfigurirati za obradu zahtjeva putem bilo kojeg drugog protokola osim standardnog HTTP-a i FTP-a, na primjer, POP3, SMTP, Gopher. Možete čak slobodno osmisliti vlastiti protokol za svoju web ili WCF uslugu i implementirati sve potrebne komponente za nju, ako vam ne smeta vaše vrijeme. Najvjerojatnije su adapteri i slušatelji za najčešće protokole dostupni za besplatno i komercijalno preuzimanje - nisam ovo provjerio. Ali prije svega, trebali biste obratiti pozornost na standardne usluge (slika 3) koje se isporučuju. NET Framework i integrirano s IIS-om:

  • NetTcpActivator za TCP protokol;
  • NetPipeActivator za imenovane cijevi;
  • NetMsmqActivator za čekanje poruka (aka MSMQ).


Riža. 3. Popis standardnih ne-HTTP adaptera u dodatku Windows Services.

Ali ipak, najvažniji adapter za nas je WWW usluga, uklj. Pogledajmo pobliže dvije preostale funkcije iz IIS-a 6.

Administracija i konfiguracija HTTP(S). Kada se konfiguracija web stranice ažurira, usluga WAS prosljeđuje te informacije WWW usluzi, koja zauzvrat konfigurira HTTP.sys da sluša određene priključke, analizira IP i zaglavlje tražene stranice i, eventualno, druge parametre upravljačkog programa . U obrnuta strana W3SVC kontaktira WAS kada novi zahtjev stigne u HTTP.sys red čekanja za dobivanje radnog procesa za obradu zahtjeva.

Pratite metriku izvedbe. Usluga WWW održava brojače performansi pomoću upravljačkog programa HTTP.sys i daje ih web stranicama i IIS predmemoriji. Nisam uspio pronaći detaljnije informacije o ovom pitanju.

2.3. Usluga aktivacije Windows procesa (WAS)
Dakle, WWW usluga u IIS 7.x, kao iu IIS 6, nastavlja obavljati zadatke administriranja HTTP.sys i upravljanja metrikom performansi web stranice. No, zadaća upravljanja radnim procesima premještena je u posebnu službu - WAS. Sustav ga pokreće u jednoj kopiji, čita konfiguraciju iz datoteke %SystemRoot%\System32\inetsrv\Config\ApplicationHost.config i konfigurira slušatelje protokola putem odgovarajućih adaptera u skladu s informacijama navedenim u njemu. Podsjetimo se da je za HTTP/HTTPS protokole adapter usluga W3SVC, a slušatelj je upravljački program HTTP.sys. Kada slušatelj presretne zahtjev, koristi svoj adapter za kontaktiranje usluge WAS za dobivanje radnog procesa aplikacije, koji će primiti zahtjev za obradu i generirati odgovor klijentu.

Prilikom aktiviranja aplikacije potrebne za obradu korisničkog zahtjeva koriste se sljedeće komponente:

  • Adapteri za slušanje – posebni Windows usluge, radeći na određenom protokolu i u interakciji s WAS-om radi usmjeravanja zahtjeva na ispravan tijek rada.
  • Zapravo BILO. Ona je odgovorna za kreiranje radnih procesa i upravljanje njihovim vijekom trajanja.
  • Izvršna datoteka w3wp.exe predložak je tijeka rada.
  • Upravitelj aplikacija upravlja stvaranjem i raspolaganjem domena aplikacija koje se nalaze unutar radnog procesa.
  • Rukovatelji protokolima su komponente ovisne o protokolu unutar radnog procesa koje su odgovorne za razmjenu podataka između određenog adaptera i radnog procesa. Postoje 2 vrste rukovatelja protokolom: rukovatelji protokola procesa (PPH) i rukovatelji protokola domene aplikacije (ADPH).
Donja slika prikazuje primjer dijagrama komponenti unutar instance radnog tijeka aplikacije. Kada WAS servis pokrene radni proces, u njega učitava potrebne rukovatelje zapisnicima procesa (PPH) prema konfiguraciji aplikacije i preko upravitelja aplikacija kreira aplikacijsku domenu unutar radnog procesa u kojoj će se aplikacija nalaziti. Upravitelj aplikacija učitava kod aplikacije u domenu aplikacije i potrebne rukovatelje protokolom sloja aplikacije (ADPH) za obradu poruka preko odgovarajućih mrežnih protokola.


Riža. 4. komponente w3wp.exe za interakciju s vanjskim komponentama.

Kao što je gore navedeno, .NET Framework implementira komponente za HTTP/HTTPS (naš omiljeni ASP.NET), net.tcp, net.pipe i MSMQ protokole. Skupovi HTTP/HTTPS i FTP protokola još su uvijek tješnje integrirani u IIS i OS, pa je bolje demonstrirati konfiguraciju za novi protokol na primjeru manje popularnih Dotnet protokola. Dakle, nakon instaliranja okvira, sljedeći se unosi pojavljuju u konfiguracijskoj datoteci IIS ApplicationHost.config:

A odgovarajuće PPH i ADPH komponente su konfigurirane u Dotnet machine.config:

Konfiguracijska datoteka web poslužitelja ApplicationHost.config, zajedno s postavkama aplikacije, pohranjuje povezivanja koja definiraju parametre dolaznih zahtjeva koji će biti poslani ovoj aplikaciji. Takvi parametri su naziv mrežnog protokola, IP adresa poslužitelja, naziv domene i port stranice. Ovi parametri moraju biti jedinstveni među pokrenutim aplikacijama kako bi se jedinstveno identificirala ciljna aplikacija. Usluga WAS prati ovo ograničenje i neće vam dopustiti pokretanje stranice koja ne ispunjava ovaj uvjet ili će ponuditi zaustavljanje stranice s istim linkom.

Imajte na umu da se u standardnom načinu rada IIS-a, usluga WAS, usluga adaptera za svakog slušatelja protokola (uključujući W3SVC) i sami upravljački programi/slušatelji za svaki protokol (uključujući HTTP.sys) pokreću u OS-u u jednoj kopiji . Ali pojedinačni zahtjevi mogu biti preusmjereni različitim aplikacijama u različitim radnim procesima. S druge strane, zahtjevi se mogu poslati jednoj aplikaciji koristeći različite protokole putem odgovarajućih adaptera. Očigledno je za ispravnu implementaciju ovog ponašanja izmišljena arhitektonska kombinacija pokretačkog programa protokola - adaptera upravljačkog programa protokola - usluge aktivacije (vrsta regulatora, točnije usmjerivača) - tijeka rada.

2.4. Skup aplikacija
Prilikom konfiguracije web aplikacije, osim vezanja na parametre zahtjeva i druge postavke, naznačeno je članstvo u skupu aplikacija. Skupljanje aplikacija bilo je novo u IIS-u 6 i osmišljeno je za pružanje izolacije web aplikacija jedna od druge i time povećanje stabilnosti web poslužitelja u cjelini. Suština je da se kod aplikacije izvodi unutar posebnog Windows procesa - w3wp.exe. Stoga će iznimka unutar web aplikacije srušiti samo taj proces i neće utjecati na dostupnost web aplikacija u drugim skupovima ili rad IIS-a. Štoviše, usluga WAS pokušat će ponovno pokrenuti srušenu stranicu, a vanjski klijenti možda neće ni primijetiti probleme s poslužiteljem.

IIS koristi grupu aplikacija za upravljanje nekim parametrima jednog radnog procesa w3wp.exe. Najčešće korišteni su račun pod kojim će se proces pokrenuti, ograničenja u redu zahtjeva, razni mjerači vremena i brojači za automatsko ponovno pokretanje procesa, x86/x64 arhitektura (u IIS 7.x) i neki drugi (Sl. 5. ), o koje znatiželjni čitatelj lako može pročitati na MSDN-u i svojoj omiljenoj tražilici. Da. možemo govoriti (uz određene rezerve, vidi i posljednji paragraf u 2.5) o identitetu w3wp.exe procesa i skupa aplikacija.


Riža. 5 Dodatne postavke skupa aplikacija

Ključna novost u konceptu skupova aplikacija u IIS 7.x je novi parametar - model upravljanja spremnikom, koji može imati 2 vrijednosti: klasični (Classic mode) i ugrađeni model (Integrated mode).
Da biste objasnili razliku između ovih načina rada, morat ćete se upoznati s konceptom "Modula" u IIS 6/7.x i modelom obrade zahtjeva temeljenom na događajima u kombinaciji IIS + ASP.NET. Ova je tema vrijedna zasebnog članka, ali, nažalost, očito nemam dovoljno vremena za to. Ovdje ću vam predstaviti samo opće, ključne točke.

Dakle, kada IIS obradi zahtjev, on ga prosljeđuje unutar tijeka rada kroz niz posebnih komponenti - modula. Na primjer, filtriranje, preusmjeravanje, predmemorija, provjera autentičnosti, autorizacija. Svaki takav modul povezan je s određenim događajem, a njihov slijed čini model obrade zahtjeva temeljen na događajima. Moduli se dijele na izvorne i upravljane. Izvorni moduli dolaze s IIS-om, dok upravljani moduli dolaze s .NET Frameworkom (ASP.NET). Općenito, njima možete upravljati do određene mjere na razini konfiguracije web-aplikacije, ali možete komunicirati samo s upravljanim modulima iz koda vašeg ASP.NET mjesta.


Riža. 6. Ideologija modula u IIS-u.

Klasičan model upravljanje spremnikom pruža povratnu kompatibilnost s načinom izolacije radnog procesa u IIS-u 6 - zahtjevi prema ASP.NET stranici prvo se prosljeđuju kroz izvorne module, a zatim prosljeđuju Aspnet_isapi.dll za obradu po modulima u upravljanom okruženju. Ovo odvajanje između IIS-a i ASP.NET-a rezultira dupliciranjem nekih funkcija, kao što su provjera autentičnosti i autorizacija. I nemate mogućnost programske kontrole ponašanja izvornih modula (primjer, iako ne najhitniji, još uvijek je u odjeljku "Uklanjanje zaglavlja poslužitelja" u ovom članku).

Ugrađeni model uključuje bližu interakciju između IIS-a i ASP.NET-a. Zahtjev u takvoj arhitekturi obrade prolazi kroz postavljeni niz događaja, od kojih svaki prosljeđuje zahtjev kroz izvorne i upravljane module. U ovom načinu rada modeli obrade zahtjeva IIS i ASP.NET kombinirani su u jedan model, čime se izbjegava dupliciranje funkcionalnosti i daje vam više kontrole nad obradom zahtjeva.

U praksi, najvažnija stvar koju treba uzeti u obzir pri razvoju i postavljanju web aplikacija je djelomična nekompatibilnost ova dva načina. Oni. Prilikom prijenosa stranice (točnije skupa aplikacija u kojem stranica radi) s klasičnog modela na embedded gotovo uvijek će biti potrebne prilagodbe koda (iako možda neznatne) te temeljito testiranje.

2.5. Domena aplikacije, aplikacija
Izravni spremnici web aplikacije su aplikacija i aplikacijska domena (Application Domain, AppDomain). Često se ta dva pojma poistovjećuju, ali ipak su to malo različite stvari. Aplikacija je IIS koncept, a aplikacijska domena je iz ASP.NET-a. Štoviše, u općem slučaju aplikacija može imati nekoliko domena. Aplikacijom možete upravljati s IIS konzole, ali domenom aplikacije možete upravljati primarno programski. Tako se, primjerice, aplikacija ponovno pokreće s konzole. A kada ponovno spremimo web.config, domena aplikacije je ta koja se ponovno učitava, bez dodirivanja IIS aplikacije.

S praktične točke gledišta još je važnije da je aplikacija/aplikacijska domena sandbox za kod vaše ASP.NET stranice (ne s tako pouzdanom izolacijom kao u slučaju bazena, ali ipak). Ovo je jedno od mojih omiljenih pitanja koje sam postavljao kandidatima tijekom intervjua. Neka postoji web stranica-1 i web stranica-2, kao i određena biblioteka MyLib.dll, u kojoj je definirana klasa MyClass1 sa statičkim poljem Field1. Dakle, obje stranice pokreću isti skup aplikacija i koriste istu biblioteku MyLib.dll. Web stranica-1 piše u MyClass1.Field1 = 16 (Slika 7). Pitanje: Hoće li web stranica-2 vidjeti promjene? Odgovor je "Ne". Ali zašto? Budući da su adresni prostori koji se ne preklapaju dodijeljeni IIS aplikacijama, čak i ako rade unutar jednog radnog procesa, web aplikacije učitavaju vlastite kopije sklopova u memoriju (molimo vas da ne birate moguće netočnosti u smislu rada s memorijom u . NET Framework).

Riža. 7. Crtanje za problem.

Postoji još jedna važna točka koju bih ovdje želio napomenuti. Prema zadanim postavkama, svaki pojedinačni radni proces može koristiti sve dostupne procesore/jezgre na poslužitelju, a skup aplikacija radi na jednom radnom procesu i stoga se web aplikacija izvodi unutar jedne IIS aplikacije. Međutim, možete prilagoditi svoj web vrt povećanjem broja radnih procesa po skupu, a time i broja IIS aplikacija po web aplikaciji. Informacije o web vrtovima možete lako pronaći na internetu, stoga ovdje izostavljam detalje. Jedino što bih želio upozoriti je da ovaj alat nije alat za povećanje produktivnosti, jer... Prema zadanim postavkama, sva računalna snaga poslužitelja već je iskorištena. Naprotiv, sinkronizacija rada 2+ radnih procesa oduzima “dodatno” CPU vrijeme. To se uglavnom radi kako bi se povećala dostupnost web aplikacije. Ovdje je također nemoguće ne spomenuti web farmu, kao najjednostavnije sredstvo za uravnoteženje opterećenja u IIS-u - o tome također ima dosta članaka na internetu. Ovo je još jedan primjer distribuirane web aplikacije. Međutim, s nginxom, ugrađeno balansiranje opterećenja u IIS-u ne može se natjecati, au stvarnim visokoopterećenim sustavima morat ćete ponovno izmisliti svoj kotač ili koristiti proizvode trećih strana.

3. Što je sljedeće?

Zatim morate razumjeti rad modula (u smislu IIS-a) i model događaja, u kojem se stvarna obrada zahtjeva već događa, kao što je spomenuto u odjeljku 2.4. Općenito govoreći, ova tema zaslužuje poseban članak za koji, bojim se, neću imati dovoljno vremena. Ali bez toga ne možemo reći da smo razmotrili cijeli proces obrade zahtjeva. Stoga ćemo ovdje ukratko proći glavne točke, koje radoznali čitatelj može sam razraditi.

Kao što je gore navedeno u odjeljku 2.4, IIS moduli sadržani su unutar radnog procesa. Zahtjev se kroz njih prosljeđuje sekvencijalno (za razliku od HttpHandlera). Njihov skup i redoslijed određen je konfiguracijom poslužitelja i/ili određene web aplikacije. Moduli su dizajnirani za pojedinačne, visoko ciljane zadatke, kao što su autorizacija, predmemorija, prilagođeno bilježenje, kompresija, vraćanje statičkog sadržaja i, naravno, generiranje HTML stranica na danom URL-u.

Kao što već znamo, moduli u IIS-u dolaze u dvije vrste: izvorni i upravljani. Točan popis modula možete pronaći u MSDN-u ili u članku Regan Templin. Uvijek možete napisati vlastiti modul, na primjer, za preusmjeravanja. Najčešće, naravno, izrađuju upravljane module, jer... najlakše ih je provesti. Usput, ASP.NET WebForms i MVC rade u obliku takvih upravljanih modula. uklj. Osobno imam holivars WebForms vs. MVC-ovi izazivaju osmijeh i žele trolati. Znajući kako rade IIS i ASP.NET, možete implementirati bilo koji obrazac koji želite.

Na sljedećoj razini razmatranja naići ćemo na ASP.NET komponente, poput HttpHandlera i događaja obrade stranice. O tome je napisano mnogo članaka, uklj. Ne vidim smisla da se više zadržavam na ovome. Jedino što bih savjetovao onima koji idu na razgovore je da prije sastanka u tražilicu upišu “ASP.NET page lifecycle” – to je svakako, po mom dubokom uvjerenju, šteta za stručnjake koji sebe smatraju ASP.NET-om. programeri da ne znaju.

Primjer zadanih postavki za izvorne module u aplikacijiHost.config



reci prijateljima