Configurare server Web IIS – exemplificarea cascadării setărilor

Vorbeam în articolul anterior despre structura configurării în Internet Information Services 7.0 – în ce fișiere se păstrează setările de configurare și cum se propagă aceste setări de la un nivel la altul.

Hai să vedem cam cum funcționează cu un exemplu de setare – Default Document. Adică ce document va servi serverul de Web atunci când URL-ul cererii nu este complet. Ca atunci când, cerând http://www.microsoft.com, serverul va servi o pagină default.aspx. Sau, la Apache, serverul ne dă implicit index.html dacă URL-ul nu specifică în clar ce document vrea browser-ul să descarce.

La nivel de server Web

În fișierul applicationHost.config din C:\Windows\System32\inetsrv\config\ spuneam că se află setările la nivel de server, afectând toate site-urile sau aplicațiile prezente pe acel server. În secțiunea <system.webServer> vom regăsi setarea <defaultDocument> cu următoarele <files>:

<add value="default.aspx" />
<add value="default.htm" />
<add value="index.htm" />
<add value="default.html" />
<add value="index.html" />
<add value="iisstart.htm" />
<add value="default.asp" />

Semnificația e clară: pentru orice orice site de pe server, pentru orice aplicație din site-uri, pentru orice URL care nu merge până la nivel de fișier.ext, serverul va încerca să livreze default.aspx din acea cale. Dacă la acea cale nu apare default.aspx, încearcă default.htm. Dacă nici default.htm, atunci poate index.htm ș.a.m.d.

La nivel de site sau aplicație

Dacă vom crea un nou site – să zicem Joaca – pe acel server de Web și vom pune un fișier Web.config în și pentru acel site, nici nu mai trebuie să specificăm neapărat setarea <defaultDocument> în secțiunea <system.webServer>. Pentru că setarea va fi "moștenită" din aplicationHost.config de la nivelul serverului.

La fel se întâmplă dacă vom crea o aplicație Admin sub site-ul Joaca și configurăm aplicația cu propriul ei Web.config. Nu mai trebuie musai să specificăm setarea <defaultDocument> în secțiunea <system.webServer> pentru că oricum e cascadată de la nivelul superior, site-ul Joaca.

Ce se întâmplă însă dacă aș vrea să adaug ca documente implicite default.html și start.htm? Păi simplu: în Web.config (cel de la nivel site sau aplicație, după nevoie), la secțiunea <system.webServer> adaug setarea:

<defaultDocument>
   <files>
      <add value="default.html" />
      <add value="start.htm" />
   </files>
</defaultDocument>

Celelalte documente implicite nici nu trebuie să le mai specific – lista e moștenită de la nivelele superioare și eu nu am făcut decât să adaug la ea încă 2 intrări.

Suprascrierea unei setări

Să zicem că vreau să fac reglări de performanță pentru site-ul meu și una din tactici ar fi să scurtez lista <defaultDocument> la un singur fișier – default.aspx. În Web.config, la secțiunea <system.webServer> voi scrie:

<defaultDocument>
   <files>
      <clear />
      <add value="default.aspx" />
   </files>
</defaultDocument>

Oops! Ce înseamnă <clear />? Păi șterge din lista <defaultDocument> toate intrările care sunt moștenite sau cascadate de la nivelele superioare, așa încât lista <defaultDocument> pentru site-ul meu va cuprinde doar default.aspx.

Drept concluzie

Mecanismul ăsta de cascadare și suprascriere funcționează pentru majoritatea setărilor de configurare IIS. Îmi vin în minte setările de SMTP, pentru autorizare sau autentificare, string-uri de conexiune la baze de date ș.a.m.d.

E drept, putem vorbi de scenarii de hosting – mai multe site-uri găzduite pe același server de Web. Suprascrierea sau numai consultarea unor setări de configurare IIS pot compromite securitatea, nu? E bine, nu! Pentru că administratorii pot împiedica asta prin mecanisme ce stau cumva la baza delegării de configurare. Despre delegarea administrării voi vorbi într-un articol următor. Să reținem doar că, în principiu, numai administratorii serverului de Web pot altera aplicationHost.config, cel de la nivelul serverului.

Și să mai reținem o chestie pe care am spus-o în articolul anterior: fișierele XML de configurare aplicationHost.config sau Web.config pot fi

  1. editate manual, sau
  2. modificate cu instrumentul appcmd.exe din linia de comandă (numai de către administratorul serverului), sau
  3. modificate prin consola de administrare IIS, care are inclusiv facilități de administrare la distanță.

Vorbim mai târziu.

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