Iis-palvelimen asennus kuvakaappauksella. Windows Server. IIS-verkkopalvelimen asetukset. Toteutusjärjestyksen muuttaminen

Hei. Asennetaan ISS. Ensinnäkin selvitetään, mikä IIS on?

IIS (Internet Information Services, versioon 5.1 asti – Internet Information Server) on patentoitu palvelinsarja useille Microsoftin Internet-palveluille. IIS on jaettu Windows NT -perheen käyttöjärjestelmien kanssa.

IIS:n pääkomponentti on verkkopalvelin, jonka avulla voit isännöidä verkkosivustoja Internetissä. IIS tukee HTTP-, HTTPS-, FTP-, POP3-, SMTP- ja NNTP-protokollia.

Loistava. Nyt tiedämme, mistä panostamme. Aloitetaan.

Asennus

Ensinnäkin, siirry päävalikkoon "Käynnistä" (Käynnistä) edelleen

Ohjauspaneeli -> Ohjelmat -> Ota Windowsin ominaisuuksia käyttöön tai poista ne käytöstä.

Etsi luettelosta "IIS-palvelut" ja valitse tarvittavat komponentit

  • Turvallisuus. Kaikki osat paitsi "Certificate Matching Authentication...".
  • Sovelluskehityskomponentit. PHP vaatii CGI-komponentin.
  • Yleiset HTTP-ominaisuudet. Rastitaan kaikki kohdat.
  • Toiminnalliset testaukset ja diagnostiikka. Valitse "HTTP Logging" ja "Request Monitor".
  • Suorituskykyä parantavat toiminnot. Rastitaan kaikki ruudut.
  • Verkkosivuston hallintatyökalut. Me vain merkitsemme "IIS-hallintakonsoli».

Henkilökohtaisesti poikkesin hieman tästä kuvauksesta ja lisäsin FTP:n, koska minun on testattava FTP:n käyttöä tarpeitani varten.

Kun tarvittavat kohteet on valittu, napsauta "Ok" ja jäljellä on vain odottaa, kunnes tarvitsemamme komponentit on asennettu. jonka jälkeen voit käynnistää koneen uudelleen. tämä ei estä häntä aloittamasta kaikkia tarvittavia palveluita.

Kaikki. Voimme sanoa, että ISS-palvelimemme on asennettu. Siirrytään sen alkuperäiseen kokoonpanoon.

Kokoonpano

Siirry tietokoneen hallintaan (klikkaa hiiren kakkospainikkeella "Tietokone" -kuvaketta -> Hallitse), sitten "Palvelut ja sovellukset" -> "IIS Service Manager" tai Windows 7:n onnelliset omistajat voivat siirtyä toiseen "Käynnistä" ja "Haku". ohjelmat ja tiedostot" kirjoita "IIS" ja arvokas "IIS Service Manager" tulee näkyviin luetteloon

Mennään sivustoille. Poistin oletussivuston välittömästi ja päätin, että en tarvitse sitä, ja selvyyden vuoksi luon uuden.

Napsauta hiiren kakkospainikkeella "sivustot" -> "Lisää verkkosivusto"

ja luo ensimmäinen verkkosivustomme

Huomaa, että "localhost" ei valittu satunnaisesti. Koska tämä direktiivi on "oletus", sen paikallinen osoite on 127.0.0.1 ja nimi, joka on kirjoitettu hosts-tiedostoon lcalhost. Suosittelen lukemaan lisää Wikipediasta

Hyvää iltapäivää, viime kerralla kerroin, kuinka Internet Information Services poistetaan käytöstä, ja tajusimme sen, nyt halusin palata käyttöjärjestelmän asiakasversioon, nimittäin Windows 10 Creators Update -päivitykseen ja muihin versioihin, monet käyttäjät eivät oleta että Windows 7:n ajoista lähtien voit muuttaa sen todelliseksi web-palvelimeksi samassa IIS-palvelussa ja luoda siihen omia sivustoja, ala hosting, kuten Euroopassa. Tänään näytän sinulle kuinka asentaa iis Windows 10:een minuutissa, ymmärrät, että se on todella yksinkertaista ja halvempaa kuin palvelinversion ostaminen.

iis Service Manager Windows 10:ssä

Joten Windows 10:n iis-palvelut ovat oletusarvoisesti poissa käytöstä, tai pikemminkin tätä komponenttia ei ole asennettu pakkauksesta, tämä tehtiin tarkoituksella, jotta tietokoneen resurssit eivät mene hukkaan ja tarpeettomia pistorasioita ei pyöritetä siinä. Lisää tarvittava komponentti seuraavasti. Paina Win+R-näppäinyhdistelmää ja kirjoita Suorita-ikkunaan:

Tämän seurauksena Windowsin Ohjauspaneeli avautuu. Tehdään siitä esitys kuvakkeista "Suuret kuvakkeet" -muodossa.

Siirry kohtaan "Ota Windows-komponentit päälle tai pois päältä", olemme jo tehneet tämän telnet-asiakasohjelman asennuksen yhteydessä

Löydämme "Internet-palvelut" monien kohteiden joukosta, valitse niiden vieressä oleva valintaruutu ja napsauta OK. Olet aloittamassa IIS Windows 10:n asentamista.

IIS-verkkopalvelinkomponentti lisätään muutamassa sekunnissa, minkä jälkeen suosittelen käynnistämään Windows 10 -käyttöjärjestelmän uudelleen.

Kuten yllä kirjoitin, käynnistämme järjestelmän uudelleen.

Muuten, kun olet asentanut kaiken, ennen kuin aloitat, älä ole laiska etsimään uusimpia päivityksiä Windows Updatesta, koska siellä voi olla uusia korjaustiedostoja. Katso nyt, kuinka voit nyt avata IIS Managerin. On olemassa useita tapoja, ensin paina WIN+R ja kirjoita inetMgr. Tarvittavat varusteet aukeavat.

Toinen tapa on avata Käynnistä-painike ja etsiä Valvontatyökalut-kansiosta Internet Information Services Manager

Viime vuonna jouduin haastattelemaan noin 10-15 hakijaa keskitason ASP.NET web-ohjelmoijan tehtävään. Kysymyksissä "täytettäväksi" tai "tähdellä" pyysin kertomaan, mitä HTTP-pyynnölle tapahtuu siitä hetkestä, kun se saapuu palvelimen 80. porttiin, kunnes ohjaus siirtyy aspx-sivun koodiin. Tilastot olivat masentavia: kukaan ehdokkaista ei kyennyt tuottamaan mitään ymmärrettävää. Ja tälle on selitys: ei MSDN:ssä technetillä, ei erikoisresurssissa iis.net, ei kirjoissa a-la "ASP.NET for Professionals" eikä blogeissakaan tähän aiheeseen kiinnitetä riittävästi huomiota - tiedon täytyy kerätään lähes pala kerrallaan. Tiedän jopa ihmisiä, jotka päättivät kirjoittaa oman web-palvelimensa (Igor, Georgi, hei!), jotta heidän ei tarvitsisi ymmärtää IIS:n toimintaa. Ainoa järkevä artikkeli on Reagan Templinin "Johdatus IIS-arkkitehtuuriin". Mutta se pysyy myös pyrkivien etujen reuna-alueella.

Vaikka en henkilökohtaisesti ole enää niin kiinnostunut puhtaasti teknisistä asioista, päätin kerätä kertyneen kokemukseni, kaivaa mielenkiintoisia yksityiskohtia Internetistä ja välittää tämän pyhän tiedon massoille ennen kuin se vanhenee. Haluan tehdä heti varauksen, että artikkeli keskittyy enemmän IIS 7.x:ään, joskus tulee osia noin 6:sta. En ole törmännyt versioon 8 työssäni, joten päätin jättää sen huomiotta tässä artikkelissa. Mutta olen varma, että lukija ymmärtää helposti kahdeksan, kun hän hallitsee alla esitetyn materiaalin.







1. Yleissuunnitelma

Joten aloitetaan lopusta ja tarkastellaan sitten yksittäisiä näkökohtia hieman tarkemmin.
Englanninkielisessä kirjallisuudessa pyynnön käsittelyprosessia IIS:ssä kutsutaan "pyynnön käsittelyprosessiksi" - vähän kuin "pyynnön käsittelyputki". Se on yhteenveto alla olevassa kuvassa http-pyyntöä varten.

Riisi. 1. HTTP-pyynnön käsittelyputki (IIS 7.x).

Joten http-pyyntö menee "asennushihnaa" alaspäin seuraavasti:

1. Selain käyttää verkkopalvelinta tietyllä URL-osoitteella, palvelimen puolella ajuri sieppaa pyynnön HTTP.SYS.
2. HTTP.SYS koputtaa W.A.S. hakeaksesi tietoja määrityssäilöstä.
3. Palvelu W.A.S. pyytää määrityksiä arkistosta - IIS-kansiossa olevasta tiedostosta (applicationHost.config).
4. Koska tämä pyyntö vastaanotetaan HTTP-protokollan kautta, palvelu vastaanottaa konfigurointitietoja W3SVC(kuvassa WWW-palvelu), nämä tiedot sisältävät tietoja sovelluspoolista ja muista sivuston parametreista.
5. Palvelu W3SVC käyttää näitä tietoja konfigurointiin HTTP.SYS.
6. Palvelu W.A.S. aloittaa prosessin W3WP.exe sovelluspoolille, jos sitä ei ole vielä aloitettu.
7. Käynnissä W3WP.exe verkkosivustosovellus on käynnissä, joka itse asiassa luo ja palauttaa vastauksen kuljettajalle HTTP.SYS.
8. HTTP.SYS lähettää vastauksen selaimeen.

Periaatteessa tämä kaavio riittää läpäisemään haastattelun useimmissa yrityksissä ja saamaan yleiskuvan IIS-arkkitehtuurista. Mutta jos et tullut tänne esitykseen, jatka eteenpäin.

2. Lähikuva

Tarkastellaan nyt lähemmin jokaista mainituista komponenteista.
2.1. HTTP.SYS
Siirtokerroksessa IIS käyttää protokollakuuntelijoita, jotka sijaitsevat TCP/IP-pinon päällä. Mielenkiintoisin komponentti meille on käyttöjärjestelmän ytimeen sisäänrakennettu HTTP.sys-järjestelmäajuri, joka toimii HTTP- ja HTTPS-protokollien kanssa rekisteröityen itsenäisesti kuuntelemaan kaikkia portteja, joihin pyynnöt IIS:n sivustoille saapuvat.

HTTP.sys, joka on sisäänrakennettu ytimeen, on uusi IIS 6:ssa, ja se korvaa Windows Socket API:n, käyttäjätason HTTP- ja HTTPS-pyyntöjen sieppauskomponentin IIS:n aikaisemmissa versioissa. Luultavasti ajurin integrointi ytimeen on juuri se syy, miksi IIS-versio on tiukasti sidottu Windows-versioon.

Ajuri hyväksyy kaikki saapuvat pyynnöt ja ohjaa ne haluttuun sovelluspooliin. Jos työprosessi, jossa vaadittua poolia isännöidään, on jostain syystä pysäytetty (virhe, käyttämättömän aikakatkaisu, kokoonpanon muutos jne.) tai on edelleen käynnissä, HTTP.sys tallentaa saapuvat pyynnöt jonoon, joka on erityisesti määritetty kullekin poolille. Siten käyttäjien pyynnöt eivät katoa minnekään, eivätkä he huomaa häiriöitä IIS:ää käyttävien sivustojen toiminnassa.

HTTP.sys voi myös tallentaa vastaukset välimuistiin (tarkemmin - Esiintymät, joissa HTTP.sys ei tallenna sisältöä välimuistiin), joten jotkin pyynnöt käsitellään siirtämättä niitä sovellustasolle, ja se suorittaa myös pyynnön URI:n alkuperäisen jäsentämisen ja sen validoinnin RFC 2396:n mukaisesti (jotain -mitä tästä voi oppia - Erikoismerkkien, kuten "%" '.' ja ':' käyttö IIS-URL-osoitteessa) ja lokipyynnöt/vastaukset.

Jotkut HTTP.sys-asetukset sisältyvät Windowsin järjestelmärekisteriin (lisätietoja on kohdassa Http.sys-rekisteriasetukset Windowsille). Muuten, siellä – rekisterissä – näet kansalaisemme tavallisen rekisteröintipaikan: %SystemRoot%\system32\drivers\http.sys.

Suoraan sanottuna tätä artikkelia kirjoittaessani löysin joitain yksityiskohtia. Esimerkiksi vastausten välimuisti HTTP.sys-ohjaintasolla. Tämä auttoi minua selittämään yhden tapauksen oudosta, kuten minusta silloin tuntui, ilmiöstä IIS:n käyttäytymisessä. Markkinoijat julkaisivat swf-kortin verkkosivustolle ennen seuraavaa lomaa, mutta sitten he eivät pitäneet jostakin tiedoston nimestä ja nimesivät sen uudelleen. Sivusto jatkoi kuitenkin postikortin antamista vanhaan URL-osoitteeseen, eikä edes selaimen välimuistin tyhjennys auttanut. Olen jo muodostanut yhteyden tänne, mutta verkkosivuston ja koko sovelluspoolin uudelleenkäynnistäminen tai sivustolle pääsy yrityksen välityspalvelimen ohittaminen ei tuottanut odotettua tulosta. Mutta nyt tiedämme kuka on syyllinen.
2.2. World Wide Web Publishing Service (W3SVC)
Tämä palvelu (spesifikaatioissa lyhennetty WWW-palveluksi) otettiin käyttöön IIS 6:ssa erillisenä komponenttina HTTP/HTTPS-protokollien kanssa työskentelemiseen ja sovellusten työnkulkujen hallintaan, ja se suoritti seuraavat toiminnot:
  • HTTP.sys-ohjaimen hallinta.
  • Työnkulun hallinta.
  • Verkkosivuston suorituskykymittareiden seuranta.
Tämä palvelu toimii Windows Server 2003:ssa Svchost.exe-prosessin yhteydessä (asetuksia voi tarkastella rekisterissä HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3Svc) toisin kuin kaikki muut IIS-palvelut, jotka suoritetaan Inetinfo.exe-prosessin yhteydessä ja toteutetaan Iisw3adm.dll-tiedostossa.

IIS 7.x:ssä prosessinhallintatoiminto siirrettiin erilliseen palveluun - WAS (katso kappale 2.3) arkkitehtuurin yleistämiseksi. Nyt WWW-palvelusta on tullut olennaisesti yksi sovittimista, joka on erikoistunut HTTP/HTTPS-protokolliin - toimii HTTP.sys-ohjaimen päällä. WWW-palvelu on kuitenkin edelleen IIS:n kulmakivi, joten sen määrittäminen eroaa sovittimien määrittämisestä muille protokollille (lisätietoja tästä); se toimii samassa työnkulussa kuin WAS ja on toteutettu samassa kirjastossa (kuva 2).


Kuva 2. Työnkulku W3SVC- ja WAS-palveluilla.

Koska puhumme protokollakuuntelijoiden sovittimista (protokollakuuntelijaadpater), pysähdytään vähän ja katsotaan mitä ne ovat. Periaatteessa IIS 7.x voidaan konfiguroida käsittelemään pyyntöjä millä tahansa muulla protokollalla kuin tavallisella HTTP:llä ja FTP:llä, esimerkiksi POP3, SMTP, Gopher. Voit jopa vapaasti keksiä oman protokollan web- tai WCF-palvelullesi ja toteuttaa siihen kaikki tarvittavat komponentit, jos aikaasi ei välitä. Todennäköisimmin yleisimpien protokollien sovittimet ja kuuntelijat ovat ladattavissa ilmaiseksi ja kaupallisesti - en ole tarkistanut tätä. Mutta ensinnäkin kannattaa kiinnittää huomiota .NET Frameworkin mukana toimitettuihin ja IIS:ään integroituihin peruspalveluihin (kuva 3):

  • NetTcpActivator TCP-protokollalle;
  • NetPipeActivator nimetyille putkille;
  • NetMsmqActivator viestijonoa varten (alias MSMQ).


Riisi. 3. Luettelo tavallisista ei-HTTP-sovittimista Windows Services -laajennuksessa.

Mutta silti meille tärkein sovitin on WWW-palvelu, sis. Katsotaanpa tarkemmin kahta jäljellä olevaa toimintoa IIS 6:sta.

HTTP(S) hallinta ja konfigurointi. Kun verkkosivuston kokoonpano päivitetään, WAS-palvelu siirtää nämä tiedot WWW-palveluun, joka puolestaan ​​määrittää HTTP.sys:n kuuntelemaan tiettyjä portteja, jäsentämään pyydetyn sivuston IP:n ja otsikon sekä mahdollisesti muita ajurin parametreja. . Päinvastaisessa suunnassa W3SVC ottaa yhteyttä WAS:iin, kun uusi pyyntö saapuu HTTP.sys-jonoon - saadakseen työprosessin, joka käsittelee tämän pyynnön.

Seuraa suorituskykymittareita. WWW-palvelu ylläpitää suorituskykylaskureita HTTP.sys-ajurin avulla ja toimittaa ne verkkosivustoille ja IIS-välimuistiin. En löytänyt tarkempaa tietoa tästä aiheesta.

2.3. Windows Process Activation Service (WAS)
Joten IIS 7.x:n WWW-palvelu, kuten IIS 6:ssa, jatkaa HTTP.sys:n hallintaan ja verkkosivustojen suorituskykymittareiden hallintaan liittyviä tehtäviä. Mutta työprosessien johtamisen tehtävä on siirretty erilliseen palveluun – WAS. Järjestelmä käynnistää sen yhtenä kopiona, lukee kokoonpanon tiedostosta %SystemRoot%\System32\inetsrv\Config\ApplicationHost.config ja konfiguroi protokollakuuntelijoita asianmukaisten sovittimien kautta siinä määriteltyjen tietojen mukaisesti. Muista, että HTTP/HTTPS-protokollien sovitin on W3SVC-palvelu ja kuuntelija HTTP.sys-ohjain. Kun kuuntelija sieppaa pyynnön, se ottaa sovittimellaan yhteyttä WAS-palveluun saadakseen sovellustyöprosessin, joka vastaanottaa pyynnön käsitellä ja luoda vastauksen asiakkaalle.

Kun aktivoidaan käyttäjäpyynnön käsittelemiseen tarvittava sovellus, käytetään seuraavia komponentteja:

  • Listener-sovittimet ovat Windowsin erikoispalveluita, jotka toimivat tietyn protokollan kanssa ja ovat vuorovaikutuksessa WAS:n kanssa reitittääkseen pyynnöt oikeaan työnkulkuun.
  • Itse asiassa OLI. Hän vastaa työnkulkujen luomisesta ja niiden elinkaaren hallinnasta.
  • Suoritettava w3wp.exe-tiedosto on työnkulkumalli.
  • Sovellusten hallinta hallitsee työprosessin isännöimien sovellusalueiden luomista ja hävittämistä.
  • Protokollakäsittelijät ovat työprosessin protokollasta riippuvaisia ​​komponentteja, jotka vastaavat tiedonvaihdosta tietyn sovittimen ja työprosessin välillä. Protokollakäsittelijöitä on kahdenlaisia: prosessiprotokollakäsittelijät (PPH) ja sovellusalueen protokollakäsittelijät (ADPH).
Alla olevassa kuvassa on esimerkki kaaviosta sovelluksen työnkulun ilmentymän sisällä olevista komponenteista. Kun WAS-palvelu käynnistää työprosessin, se lataa siihen tarvittavat prosessilokinkäsittelijät (PPH) sovelluskokoonpanon mukaan ja luo sovellushallinnan kautta työprosessiin sovellusalueen, jossa sovellusta isännöidään. Sovellusten hallintaohjelma lataa sovelluskoodin sovellusalueelle ja vaaditut sovelluskerroksen protokollakäsittelijät (ADPH) viestien käsittelemiseksi asianmukaisten verkkoprotokollien kautta.


Riisi. 4. w3wp.exe-komponentit vuorovaikutukseen ulkoisten komponenttien kanssa.

Kuten edellä mainittiin, .NET Framework toteuttaa komponentteja HTTP/HTTPS (suosikkimme ASP.NET), net.tcp, net.pipe ja MSMQ protokollia varten. HTTP/HTTPS- ja FTP-protokollapinot on edelleen integroitu tiiviimmin IIS:ään ja käyttöjärjestelmään, joten on parempi esitellä uuden protokollan konfiguraatio käyttämällä esimerkkiä vähemmän suosituista Dotnet-protokollasta. Joten kehyksen asentamisen jälkeen seuraavat merkinnät näkyvät IIS ApplicationHost.config -määritystiedostossa:

Ja vastaavat PPH- ja ADPH-komponentit on määritetty Dotnet machine.config -tiedostossa:

Verkkopalvelimen määritystiedosto ApplicationHost.config tallentaa sovellusasetusten kanssa sidoksia, jotka määrittelevät tälle sovellukselle lähetettävien saapuvien pyyntöjen parametrit. Nämä parametrit ovat verkkoprotokollan nimi, palvelimen IP-osoite, toimialueen nimi ja sivuston portti. Näiden parametrien on oltava yksilöllisiä käynnissä olevien sovellusten joukossa, jotta kohdesovellus voidaan yksilöidä. WAS-palvelu valvoo tätä rajoitusta eikä salli sinun käynnistää sivustoa, joka ei täytä tätä ehtoa, tai tarjoutuu lopettamaan sivuston, jolla on sama linkki.

Huomaa, että IIS:n vakiokäyttötilassa WAS-palvelu, sovitinpalvelu jokaiselle protokollan kuuntelijalle (mukaan lukien W3SVC) ja itse kunkin protokollan ajurit/kuuntelijat (mukaan lukien HTTP.sys) käynnistetään käyttöjärjestelmässä yhtenä kopiona. . Yksittäiset pyynnöt voidaan kuitenkin reitittää eri sovelluksiin eri työnkulkuissa. Toisaalta pyynnöt voidaan lähettää yhdelle sovellukselle eri protokollia käyttäen asianmukaisten sovittimien kautta. Ilmeisesti tämän käyttäytymisen oikeaa toteuttamista varten keksittiin arkkitehtoninen yhdistelmä protokollaohjaimesta - protokollaohjainsovittimesta - aktivointipalvelusta (eräänlainen säädin, tarkemmin sanottuna reititin) - työnkulku.

2.4. Sovelluspooli
Kun määrität verkkosovellusta, pyyntöparametrien ja muiden asetusten sidosten lisäksi ilmoitetaan jäsenyys sovelluspoolissa. Sovellusten yhdistäminen oli uutta IIS 6:ssa, ja sen tarkoituksena oli eristää verkkosovellukset toisistaan ​​ja siten lisätä koko web-palvelimen vakautta. Tärkeintä on, että sovelluskoodi suoritetaan erityisessä Windows-prosessissa - w3wp.exe. Tästä syystä verkkosovelluksen sisäinen poikkeus kaataa vain kyseisen prosessin, eikä se vaikuta verkkosovellusten saatavuuteen muissa pooleissa tai IIS:n toimintaan. Lisäksi WAS-palvelu yrittää käynnistää kaatuneen sivuston uudelleen, eivätkä ulkoiset asiakkaat välttämättä edes huomaa ongelmia palvelimen kanssa.

IIS käyttää sovelluspoolia yksittäisen w3wp.exe-työprosessin joidenkin parametrien hallintaan. Yleisimmin käytettyjä ovat tili, jolla prosessi käynnistetään, pyyntöjonon rajoitukset, erilaiset ajastimet ja laskurit prosessin automaattista uudelleenkäynnistystä varten, x86/x64-arkkitehtuuri (IIS 7.x:ssä) ja joitain muita (kuva 5). ), o jonka utelias lukija voi helposti lukea MSDN:stä ja suosikkihakukoneestaan. Että. voimme puhua (tietyin varauksin, katso myös viimeinen kappale kohdassa 2.5) w3wp.exe-prosessin ja sovelluspoolin identiteetistä.


Riisi. 5 Sovelluspoolin lisäasetukset

Keskeinen innovaatio IIS 7.x:n sovelluspoolien konseptissa on uusi parametri - kontinhallintamalli, joka voi ottaa kaksi arvoa: klassinen (klassinen tila) ja sulautettu malli (integroitu tila).
Selvittääksesi näiden toimintatilojen välisen eron, sinun on tunnettava IIS 6/7.x:n "moduuli"-käsite ja IIS + ASP.NET -yhdistelmän tapahtumapohjainen pyyntökäsittelymalli. Tämä aihe ansaitsee erillisen artikkelin, mutta valitettavasti minulla ei ilmeisesti ole tarpeeksi aikaa siihen. Tässä esitän huomionne vain yleisiä, keskeisiä kohtia.

Joten kun IIS käsittelee pyynnön, se välittää sen työnkulun sisällä erikoiskomponenttien - moduulien - sarjan kautta. Esimerkiksi suodatus, uudelleenohjaus, välimuisti, todennus, valtuutus. Jokainen tällainen moduuli liittyy tiettyyn tapahtumaan, ja niiden järjestys muodostaa tapahtumapohjaisen pyyntökäsittelymallin. Moduulit on jaettu alkuperäisiin ja hallittuihin. Natiivimoduulien mukana tulee IIS, kun taas hallittujen moduulien mukana tulee .NET Framework (ASP.NET). Yleensä voit hallita niitä tietyssä määrin verkkosovelluksen määritystasolla, mutta voit olla vuorovaikutuksessa vain ASP.NET-sivustokoodisi hallinnoitujen moduulien kanssa.


Riisi. 6. IIS:n moduulien ideologia.

Klassinen malli säilön hallinta tarjoaa taaksepäin yhteensopivuuden IIS 6:n työntekijöiden prosessin eristystilan kanssa – ASP.NET-sivustolle tulevat pyynnöt välitetään ensin alkuperäisten moduulien kautta ja sitten Aspnet_isapi.dll:lle moduulien käsittelemistä varten hallitussa ympäristössä. Tämä IIS:n ja ASP.NETin välinen erottelu johtaa joidenkin toimintojen, kuten todentamisen ja valtuutuksen, päällekkäisyyteen. Eikä sinulla ole mahdollisuutta ohjelmoida natiivimoduulien toimintaa (esimerkki, vaikkakaan ei kaikkein kiireellisin, on edelleen tämän artikkelin osiossa "Palvelimen otsikon poistaminen").

Sisäänrakennettu malli sisältää tiiviimmän vuorovaikutuksen IIS:n ja ASP.NETin välillä. Pyyntö tällaisessa käsittelyarkkitehtuurissa kulkee tietyn tapahtumasarjan läpi, joista jokainen välittää pyynnön alkuperäisten ja hallittujen moduulien kautta. Tässä tilassa IIS- ja ASP.NET-pyyntöjenkäsittelymallit yhdistetään yhdeksi malliksi, mikä välttää päällekkäisiä toimintoja ja antaa sinulle paremman hallinnan pyyntöjen käsittelyyn.

Käytännössä tärkein asia, joka on otettava huomioon verkkosovelluksia kehitettäessä ja otettaessa käyttöön, on näiden kahden tilan osittainen yhteensopimattomuus. Nuo. Siirrettäessä sivustoa (tarkemmin sanottuna sovelluspoolia, jossa sivusto toimii) klassisesta mallista upotettuun, koodin säätöjä (vaikkakaan ei ehkä merkittäviä) vaaditaan lähes aina sekä perusteellista testausta.

2.5. Sovellusalue, sovellus
Verkkosovelluksen suorat säilöt ovat sovellus ja sovellusalue (Application Domain, AppDomain). Usein nämä kaksi käsitettä tunnistetaan, mutta silti ne ovat hieman eri asioita. Sovellus on IIS-konsepti ja sovellusalue on peräisin ASP.NET:stä. Lisäksi yleisessä tapauksessa sovelluksella voi olla useita toimialueita. Voit hallita sovellusta IIS-konsolista, mutta voit hallita sovellusaluetta ensisijaisesti ohjelmallisesti. Joten esimerkiksi sovellus käynnistetään uudelleen konsolista. Ja kun tallennamme web.config-tiedoston uudelleen, sovelluksen toimialue ladataan uudelleen koskematta IIS-sovellukseen.

Käytännön kannalta tärkeämpää on, että sovellus/sovellusalue on hiekkalaatikko ASP.NET-sivustosi koodille (ei niin luotettavalla eristyksellä kuin poolin tapauksessa, mutta silti). Tässä on yksi suosikkikysymyksistäni, joita olen esittänyt ehdokkaille haastattelujen aikana. Olkoon sivusto-1 ja web-sivusto-2 sekä tietty kirjasto MyLib.dll, jossa on määritelty luokka MyClass1, jossa on staattinen kenttä Kenttä1. Joten molemmat sivustot käyttävät samaa sovelluspoolia ja käyttävät samaa MyLib.dll-kirjastoa. Verkkosivusto-1 kirjoittaa kohtaan MyClass1.Field1 = 16 (Kuva 7). Kysymys: Näkeekö website-2 tehdyt muutokset? Vastaus on ei". Mutta miksi? Koska IIS-sovelluksille on varattu ei-päällekkäisiä osoiteavaruuksia, vaikka ne toimisivat yhden työntekijän prosessissa, joten verkkosovellukset lataavat omat kopionsa kokoonpanoista muistiin (älä poimi mahdollisia epätarkkuuksia, jotka liittyvät muistiin . NET Framework).

Riisi. 7. Piirustus ongelmaan.

Tässä on vielä yksi tärkeä seikka, jonka haluaisin huomauttaa. Oletusarvoisesti jokainen yksittäinen työntekijäprosessi voi käyttää kaikkia palvelimella olevia prosessoreita/ytimiä, ja sovelluspooli toimii yhdessä työntekijäprosessissa, joten verkkosovellus toimii yhdessä IIS-sovelluksessa. Voit kuitenkin mukauttaa verkkopuutarhaasi lisäämällä työprosessien määrää poolia kohden ja siten myös IIS-sovellusten määrää verkkosovellusta kohti. Netistä löydät helposti tietoa verkkopuutarhoista, joten jätän yksityiskohdat pois täältä. Ainoa asia, jonka haluan varoittaa, on se, että tämä työkalu ei ole työkalu tuottavuuden lisäämiseen, koska... Oletuksena palvelimen koko laskentateho on jo käytössä. Päinvastoin, 2+ työntekijäprosessin työn synkronointi vei "ylimääräistä" CPU-aikaa. Tämä tehdään pääasiassa verkkosovelluksen saatavuuden lisäämiseksi. On myös mahdotonta olla tässä mainitsematta web-farmaa, joka on IIS:n yksinkertaisin kuormituksen tasapainotuskeino - tästä on myös paljon artikkeleita Internetissä. Tämä on toinen esimerkki hajautetusta verkkosovelluksesta. Nginxin kanssa IIS:n sisäänrakennettu kuormituksen tasapainotus ei kuitenkaan voi kilpailla, ja todellisissa korkean kuormituksen järjestelmissä sinun on keksittävä pyöräsi uudelleen tai käytettävä kolmannen osapuolen tuotteita.

3. Mitä seuraavaksi?

Seuraavaksi sinun on ymmärrettävä moduulien toiminta (IIS:n kannalta) ja tapahtumamalli, jossa pyynnön varsinainen käsittely jo tapahtuu, kuten kohdassa 2.4 mainitaan. Yleisesti ottaen tämä aihe ansaitsee erillisen artikkelin, johon minulla ei valitettavasti ole tarpeeksi aikaa. Mutta ilman tätä emme voi sanoa, että olemme tarkastelleet koko pyyntöjen käsittelyprosessia. Siksi käymme tässä lyhyesti läpi pääkohdat, joita utelias lukija voi selvittää itse.

Kuten edellä kohdassa 2.4 todettiin, IIS-moduulit sisältyvät työntekijäprosessiin. Pyyntö välitetään niiden kautta peräkkäin (toisin kuin HttpHandlers). Niiden kokoonpano ja järjestys määräytyvät palvelimen ja/tai tietyn verkkosovelluksen kokoonpanon mukaan. Moduulit on suunniteltu yksittäisiin, tarkasti kohdennettuihin tehtäviin, kuten valtuutus, välimuisti, mukautettu loki, pakkaus, staattisen sisällön palauttaminen ja tietysti HTML-sivujen luominen tietylle URL-osoitteelle.

Kuten jo tiedämme, IIS:n moduuleita on kahta tyyppiä: alkuperäisiä ja hallittuja. Löydät tarkan luettelon moduuleista MSDN:stä tai Regan Templinin artikkelista. Voit aina kirjoittaa oman moduulin esimerkiksi uudelleenohjauksia varten. Useimmiten he tietysti tekevät hallittuja moduuleja, koska... ne on helpoin toteuttaa. Muuten, ASP.NET WebForms ja MVC toimivat tällaisten hallittujen moduulien muodossa. Sisältää Henkilökohtaisesti minulla on holivars WebForms vs. MVC:t saavat sinut hymyilemään ja tekevät halun peilata. Kun tiedät kuinka IIS ja ASP.NET toimivat, voit toteuttaa minkä tahansa mallin.

Seuraavalla harkinnan tasolla törmäämme ASP.NET-komponentteihin, kuten HttpHandlereihin ja sivunkäsittelytapahtumiin. Tästä on kirjoitettu paljon artikkeleita, mm. En näe mitään järkeä pohtia tätä enempää. Ainoa asia, jonka haluan neuvoa haastatteluihin meneville, on kirjoittaa hakukoneeseen "ASP.NET-sivun elinkaari" ennen tapaamista - tämä on syvästi uskoakseni sääli asiantuntijoille, jotka pitävät itseään ASP.NET-verkkona. kehittäjät eivät tiedä.

Esimerkki alkuperäisten moduulien oletusasetuksista osoitteessa applicationHost.config

Tänään näytämme sinulle, kuinka voit ottaa käyttöön oman IIS-verkkopalvelimesi PHP-tuella Windows 8 / Windows Server 2012:ssa. Myöhemmin tällä alustalla on mahdollista ajaa useimpia nykyaikaisia ​​sisällönhallintajärjestelmiä, jotka on kirjoitettu tällä tämän hetken suosituimmalla (mutta kaukana parhaasta) web-sovelluskehityskielellä.

Windows 8:ssa IIS 8 -verkkopalvelin toimitetaan erillisenä ominaisuutena, eikä sitä ole asennettu oletusarvoisesti. Asenna IIS Windows 8:aan avaamalla Ohjauspaneeli ja alta Ohjelma ja ominaisuudet(appwiz.cpl) napsauta painiketta Laita Windows toiminnot päälle tai pois.

Valitse avautuvassa ikkunassa vieressä oleva valintaruutu Internet-tietopalvelu ja napsauta OK.

Huomautus. Oletuksena IIS on asennettu minimikokoonpanossa.

Kun asennus on valmis, tarkistetaan, että verkkopalvelimemme toimii. Voit tehdä tämän käynnistämällä Internet Explorerin (tai minkä tahansa muun selaimen) ja kirjoittamalla sen osoiteriville http://localhost (tai).

Jos IIS toimii oikein, sinun pitäisi nähdä seuraavanlainen sivu:

IIS:n asentaminen Windows Server 2012:een

Windows Server 2012:ssa Internet Information Services -verkkopalvelin voidaan asentaa Server Manager -konsolista valitsemalla asennusrooli Web-palvelin IIS.

Hyväksymme oletusarvoisesti ehdotetut komponentit, asennamme vain lisäosia CGI(sijaitsee osiossa Sovelluksen käyttöönotto IIS-roolit).

Testataan IIS:n toimintaa avaamalla http://localhost-sivu selaimessa.

PHP:n asentaminen Windows 8 / Windows Server 2012 -käyttöjärjestelmään

PHP:n asentamiseen tarvitsemme asennusohjelman Microsoft Web Platform Installer 5.0(WPI), jonka voi ladata tästä linkistä: http://www.microsoft.com/web/downloads/platform.aspx(wpilauncher.exe.)

Neuvoja. PHP-asennusohjelman käyttäminen osana Microsoft Web Platformia tarjoaa seuraavat edut verrattuna PHP:n manuaaliseen asentamiseen:

  • WPI itse määrittää vaaditun PHP-version ja asentaa nykyisen version
  • WPI itse määrittää integroinnin IIS:n kanssa, joten voit asentaa PHP-laajennuksia ilman, että sinun tarvitsee määrittää määritystiedostoja manuaalisesti
  • WPI:n avulla voit helposti päivittää PHP:n tulevaisuudessa menettämättä asetustiedostoja

Suoritetaan ladattu tiedosto wpilauncher.exe. ja siirry näkyviin tulevassa Web Platform Installer -ikkunassa välilehdelle Tuotteet ja etsi rivi saatavilla olevien tuotteiden luettelosta PHP 5.5.1 1.

Painamme nappia Lisätä ja sitten Asentaa. Ennen asennuksen aloittamista WPI tarkistaa järjestelmän vaatimustenmukaisuuden (tarvittaessa se kehottaa asentamaan puuttuvat komponentit), minkä jälkeen PHP-asennus alkaa.

PHP:n testaus IIS:llä

Kun PHP on asennettu, tarkistetaan, että se toimii oikein. Tätä varten mennään verkkopalvelimen juurihakemistoon (oletuksena C:\inetpub\wwwroot) ja luodaan uusi tekstitiedosto PHP-tunnisteella (esim. testi.php).

Avataan se missä tahansa tekstieditorissa ja liitetään siihen seuraava koodi:

Neuvoja. PHP-määritysasetukset tallennetaan php.ini-tiedostoon, joka sijaitsee asennushakemiston juuressa.

Siinä kaikki! Joten tarkastelimme helpointa tapaa ottaa käyttöön täysimittainen IIS-verkkopalvelin PHP 5.x -tuella Windows Server 2012 / Windows 8 -käyttöjärjestelmässä.

Yleensä kun ihmiset puhuvat web-palvelimesta, he tarkoittavat ratkaisuja, jotka perustuvat Linux-alustalle. Mutta jos infrastruktuurisi perustuu Windows Serveriin, olisi loogista käyttää IIS-verkkopalvelinta. Vastoin yleistä luuloa, tämä on erittäin suosittu alusta, jonka avulla voit työskennellä suosituimpien sisällönhallintajärjestelmien kanssa, ja siinä on laaja valikoima järjestelmiä, jotka on suunniteltu toimimaan erityisesti Windowsissa ja IIS:ssä.

IIS:n kiistaton etu on sen tiivis integrointi muihin Microsoftin teknologioihin ja kehitystyökaluihin. Erityisesti IIS:n verkkoratkaisut voivat hyödyntää .NET:n monipuolisia ominaisuuksia ja olla helposti yhteentoimivia kyseisen alustan työpöytäsovellusten kanssa. Jos et vielä ole kiinnostunut tästä, niin laaja valikoima valmiita sisällönhallintajärjestelmiä on palveluksessasi, mukaan lukien erityisesti IIS:lle kirjoitetut. Tänään tarkastellaan, kuinka IIS asennetaan ja määritetään toimimaan ASP.NET-pohjaisten verkkoratkaisujen kanssa ja asennetaan yksi tämän alustan suosituista sisällönhallintajärjestelmistä.

Jos haluat asentaa verkkopalvelimen Windows-alustalle, siirrytään laajennukseen Roolit V Palvelimen hallinta ja valitse asennusrooleja Web-palvelin (IIS) Ja Sovelluspalvelin.

Mutta älä kiirehdi napsauttamaan Seuraava, vasemmalla, kunkin roolin nimen alla, vaihtoehto on käytettävissä Roolipalvelut, siirry siihen ja aseta seuraavat asetukset sovelluspalvelimelle: Web-palvelimen tuki (IIS), TCP-portin jakaminen ja Aktivointi HTTP:n kautta.

Ja web-palvelimelle asenna FTP-palvelinpalvelu.

Asenna sitten valitut roolit. Tarkista IIS:n toimivuus kirjoittamalla palvelimesi IP-osoite selaimeesi, sinun pitäisi nähdä tavallinen verkkopalvelimen tynkäsivu.

Siirrytään nyt palvelimen asettamiseen, tätä varten avaamme Internet-tietopalvelupäällikkö(sijaitsee kohdassa Start - Hallinto).

Ensinnäkin luodaan uusi sivusto, napsauta hiiren kakkospainikkeella kohdetta Verkkosivustot IIS Manager -sivuvalikosta ja valitse Luo uusi sivusto.

Määritä avautuvassa ikkunassa sivuston nimi, polku juurikansioon (oletuksena käyttäjäsivustot sijaitsevat C:\inetpub\wwwroot), joka tulee ensin luoda ja määrittää isäntänimi (sivuston verkkotunnus), meidän tapauksessamme iissite.local

Älä unohda lisätä DNS-palvelimeen A-tietuetta sivustosi nimellä tai kirjoittaa tarvittavat rivit niiden työasemien hosts-tiedostoihin, joista pääset sivustolle

Periaatteessa voit jo sijoittaa web-sivuja sivuston kansioon ja käyttää niitä selaimen kautta, mutta jotta se toimisi täysin sivuston kanssa, FTP-yhteys siihen ei haittaa. Voit tehdä tämän napsauttamalla hiiren kakkospainikkeella sivustosi nimeä sivuvalikosta ja valitsemalla Lisää FTP-julkaisu

Määritä seuraavaksi FTP-palvelun sidonta verkkoliitäntöihin ja portteihin ja määritä myös suojausasetukset. Jos aiot käyttää SSL:ää, muista, että tarvitset varmenteen, vaikka jos käytät FTP-yhteyttä vain omiin tarpeisiisi, voit pärjätä itse allekirjoitetulla varmenteella. Älä unohda valita valintaruutua käynnistääksesi FTP-sivuston automaattisesti.

Määritä seuraavalla sivulla palvelimen käyttöparametrit. Suosittelemme määrittämään tietyt käyttäjät, jotka työskentelevät tämän sivuston kanssa.

Web-palvelin on konfiguroitu ja sitä voi käyttää HTML-sivujen isännöimiseen, mutta nykyaikaiset sivustot käyttävät DBMS:ää tietojensa tallentamiseen, joten seuraava askel on asentaa MS SQL Express 2012, jonka ominaisuudet ovat enemmän kuin riittävät tehtäviimme. . Asennus suoritetaan oletusarvoilla, paitsi Todennustila, johon kannattaa vaihtaa Sekoitettu tila ja aseta salasana SQL-palvelimen pääkäyttäjälle sa.

Yritetään nyt asentaa mitä tahansa suosittua ASP.NET-teknologian pohjalta luotua CMS:ää, Microsoftin verkkosovellusgalleriassa on esitelty laaja valikoima tällaisia ​​ratkaisuja. Huomaa, että napsauttamalla latauspainiketta saat paketin asennettavaksi Web PI:n kautta, jotta voit asentaa sen IIS:ään, sinun on mentävä kehittäjän verkkosivustolle ja ladattava koko paketti sisällönhallintajärjestelmästä

Asennamme Orchard CMS:n, saat paketin seuraamalla linkkiä ja valitsemalla Lataa zip-tiedostona, pura tuloksena oleva arkisto ja lataa Orchard-kansion sisältö sivuston juureen.

Tämä sisällönhallintajärjestelmä perustuu ASP.NET 4:ään, joten määritämme sivustomme käyttämään tarvittavia tekniikoita. Voit tehdä tämän napsauttamalla hiiren kakkospainikkeella sivuston nimeä sivuvalikosta ja valitsemalla Verkkosivuston hallinta – lisäasetukset

Muuta parametria avautuvassa ikkunassa Sovelluspooli, osoittaa siellä ASP.NET v.4

Aseta sitten tarvittavat oikeudet sivustokansioon, sinun on lisättävä IIS_IUSRS-käyttäjälle mahdollisuus kirjoittaa ja muuttaa tämän kansion sisältöä.

Älä myöskään unohda luoda sivustolle tietokanta, mene osoitteeseen SQL Server Management Studio ja napsauttamalla kohdetta hiiren kakkospainikkeella Tietokanta luo uusi tietokanta sivuvalikosta.