Cum pun un site web pe server IIS? Cum pun mai multe?

Da, da, știu că unii o să strâmbe din nas. Cum pot să public un articol cu o chestie așa de trivială? Uite că pot, pentru că unii nu știu. Iar publicarea de site-uri multiple pe același server IIS e o chestie relativ nouă și pentru mine, că nu înțelegeam o chestie…

La treabă! Presupun că ați instalat deja serverul de Web IIS 7.0. Fie pe Windows Vista, fie pe Windows Server 2008, trial sau "deplin".

Dați drumul consolei de management IIS. Eu fac așa: apăs pe butonul Start, scriu în căsuța de Search "IIS" și-mi arată instant Internet Information Services (IIS) Management. Sau click-dreapta pe My Computer, selectez Manage și găsesc consola IIS sub nodul Services and Applications. Altminteri trebuie să bănănăi prin Control Panel

Cum adaugi un site nou în serverul de Web

În consola IIS, expandez nodul serverului*, adică ăla cu numele calculatorului meu. Apoi click-dreapta pe Sites și Add Web Site. Îi dau un nume site-ului, îi spun în Physical path unde este directorul cu fișierele site-ului meu și am cam terminat. Restul sunt șmecherii pe care le voi explica.

Note:

  1. Citiți mai jos în articol cum creezi o aplicație ASP.NET sub un site – s-ar putea să ajute.
  2. Pentru Windows Vista (musai SP1) sau pentru Windows XP (cu ultimul SP), recomand actualizarea consolei IIS cu una mai nouă aflată pe site-ul iis.net. Consola nouă știe să facă și management de servere sau site-uri la distanță. Descărcați de aici.

Să revin la explicarea unor șmecherii din fereastra Add Web Site. Dar atenție că astea necesită niște cunoștințe tehnice mai avansate.

Application Pool

Implicit, pentru fiecare site de pe serverul Web IIS, se creează un "snop" de procese. Astea vor face eventualele procesări înainte de a servi paginile. Pe vremuri, când un site era prost făcut și se bloca, automat strica și celelalte site-uri. De la IIS 6.0, site-urile sunt "izolate". Fiecare site își rulează procesele în propriul său spațiu. Dacă procesele unui site se blochează, nu vor afecta procesele celorlalte site-uri. Dacă un site pică, îl restartăm fără să fim nevoiți să restartăm întregul server Web.

Binding

Aici treaba devine complicată. Ai mai multe site-uri care se află pe același server. Cererile către server vin pe aceeași adresă IP. Și-atunci cum știe serverul Web către ce site a venit cererea dacă toate cererile vin pe același IP și pe același port 80? Ar fi 3 posibilități sau abordări pentru separarea cererilor și trimiterea la site-urile corecte:

  1. Punem mai multe adrese IP la serverul nostru. Și fiecare site stă pe un IP separat. Așa va departaja serverul cererile; în funcție de adresa pe care vine cererea, serverul știe către ce site o directează.
  2. Punem site-urile noi pe alte porturi decât portul 80. Nașpa, că ăsta e portul împământenit pentru HTTP. Publicarea pe alt port decât 80 are sens în cazul unor servicii web sau aplicații mai complicate.
  3. Departajăm site-urile după Host Name. Adică or veni toate cererile pe portul 80 și pe aceeași adresă IP, dar serverul se uită la numele site-ului. Serverul va ști că http://www.unsite.ro este diferit de http://www.haltsite.ro. Uitându-se în URL-ul cererii, serverul știe către ce site să directeze cererea.

În practică, cei care găzduiesc pe bune mai multe site-uri Web sau aplicații pe același server, pot folosi o combinație de tipuri de Bindings.

Cum adaugi o aplicație nouă ASP.NET

Păi click-dreapta pe un site, dai Add Application, îi dai un nume și spui la Physical path unde sunt fișierele sau paginile ASP.NET ale acelei aplicații.

Când fac un site nou pentru cineva, eu adaug o nouă aplicație sub Default Web Site. Să zicem că voi crea aplicația Joaca sub Default Web Site. De ce fac așa? pentru că dup-aia pot accesa simplu cu adresa http://localhost/Joaca. Altminteri s-ar putea să te încurci cu rezoluții DNS și alte tâmpenii din cauza conflictelor de separare Binding. Adăugarea unui site nou o folosesc pe serverele reale, aflate "în producție".

 

P.S. Se pot găzdui și site-uri PHP foarte bine pe IIS 7.0, nu numai pe Apache. Trebuie activat modulul CGI la instalarea serverului. IIS 7.0 din Windows Server 2008 are implicit așa numitul FastCGI, o optimizare special făcută pentru PHP care sporește serios performanțele împreună cu caching-ul. Optimizarea era necesară pentru că PHP-ul nu era făcut pentru multi-threading iar între Windows și Linux există diferențe fundamentale în ce privește firele de execuție. Pentru Windows Vista, XP sau IIS 6.0 din Windows Server 2003, va trebui să descărcați și să instalați FastCGI de pe site-ul iis.net. Subiectul ăsta cu PHP și FastCGI merită un articol separat…

* "Server" nu înseamnă neapărat o ditamai hardughie de calculator. "Server" înseamnă, la origini, un progrămel care rulează în background, de obicei fără interfață grafică, ce deservește niște cereri venite de la aplicații pe care le numim "client".

2 thoughts on “Cum pun un site web pe server IIS? Cum pun mai multe?

  1. am niste intrebari!daca pe calculatorul meu am instalat vs2008 si am facut site !ce trebuie sa fac ca sa-l depun pe un server?(banuiesc cu publish)pe acel server se vad sursele?(asta nu vreau)pe server trebuie instalat vs2008 sau numai .net 3.5?folosesc drivere de oracle !trebuiesc instalate pe server sau la publish le copiaza el?multumesc!lucaci adrian !adilucaci@gmail.com

Lasă un răspuns

Completează mai jos detaliile despre tine sau dă clic pe un icon pentru autentificare:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s