Dodatki do IIS

Jak powszechnie wiadomo, IIS (Internet Information Server) jest serwerem WWW wbudowanym w systemy Windows. Nie bede tutaj zachecal ani zniechecal. Konkurencja istnieje, ale skoro wybralo go dla swoich stron i aplikacji niemal 60 mln serwerów, to moge wierzyc, ze cos jednak w nim jest ciekawego nie tylko dla mnie.

Oczywiscie, IIS rozwijajac sie od czasów, gdy w wersji 1.0 byl bezplatnym dodatkiem do NT 3.51, przeszedl niemala ewolucje. Tym co najsilniej daje sie zauwazyc w wersjach 7.x jest rozszerzalnosc. Oczywiscie i wczesniej, dzieki uzyciu (moich ulubionych) mechanizmów ISAPI dalo sie co nieco rozszerzyc, ale dopiero od Windows 2008 widac, ze IIS to tylko baza, na której mozna budowac zupelnie rózne rozwiazania, których cecha wspólna jest tylko to, ze klient siega do nich przegladarka internetowa.

Polski TechNet Blog nie jest przeznaczony dla programistów (choc oczywiscie znam takich, którzy tu zagladaja), wiec nie bede sie skupiac na pisaniu aplikacji majacych dzialac dzieki IIS. Opisze raczej to, co jest w stanie zainteresowac administratora: jak rozszerzyc funkcjonalnosc dostepna "z pudelka". Dla zwiekszenia bezpieczenstwa, lepszego zarzadzania wydajnoscia czy dla zwyklej wygody administratora. Wsród najwazniejszych dodatków wymienic trzeba:

  • Administration Pack – zestaw narzedzi pozwalajacych na wzbogacenie konsoli zarzadzajacej IIS o proste w uzyciu narzedzia GUI zwiazane z autoryzacja ASP.NET, wlasnymi komunikatami bledów czy filtrowaniem zapytan. Ponadto, pakiet ten umozliwia proste zapisywanie wykonanych dzialan w postaci skryptów, co znaczaco upraszcza ich powielenie na kolejnych serwerach.
  • Application Request Routing – solidna odpowiedz na pytanie "co moge zrobic w sytuacji, gdy mechanizmy NLB sa takie proste i ograniczone?". Dzieki ARR mozemy bardzo latwo zarzadzac tym, do którego serwera w farmie powedruje konkretne zapytanie.
  • Aplication Warm-Up – modul niestety tylko dla IIS 7.5, za to daje rozwiazanie na znany kazdemu administratorowi problem polegajacy na tym, ze pierwsze uruchomienie aplikacji webowej po dluzszej przerwie moze trwac cale wieki i mocno zniecierpliwic uzytkownika. Modul sam wykonuje to pierwsze uruchomienie, dzieki czemu nawet pierwszy prawdziwy uzytkownik korzysta z aplikacji gotowej, zaladowanej do pamieci, polaczonej juz z SQL itp. W oczywisty sposób zwieksza to komfort pracy.
  • Database Manager – prosty, ale skuteczny (m.in. dodawanie i usuwanie tabel, indeksów i widoków, edycja danych, wykonywanie zapytan, backup i restore) menedzer baz danych. Niby dostepny w wielu innych produktach, ale tutaj dostajemy go w konsoli zarzadzajacej IIS, przez co mozemy bezpiecznie oddelegowac uprawnienia do bazy programiscie, który pracujac z aplikacja na IIS, musi czasem siegnac glebiej. Co wazne, dodatek równie chetnie zarzadza MS SQL 2005/2008 jak i MySQL.
  • Dynamic IP Restrictions – opisywany juz przeze mnie kilka miesiecy temu na tym blogu.
  • FastCGI for IIS – modul pozwalajacy na troche lepsza wspólprace z aplikacjami o architekturze polegajacej na dostawaniu od IIS kompletnych zapytan i oddawaniu gotowych odpowiedzi. Klasyczne CGI uzywalo standardowego wejscia i wyjscia, jednak metoda ta byla z wielu powodów (na przyklad przez koniecznosc tworzenia nowego procesu dla kazdego zapytania) dosc powolna. FastCGI pozwala na osiagniecie lepszej wydajnosci, wymagajac przy tym bardzo niewielu zmian w kodzie aplikacji. W efekcie, FastCGI pozwala na obsluge tak "przyjemnych" technologii jak chocby PHP, co sprawia, ze IIS+PHP jest calkiem czesto wybierana platforma.
  • FTP dla IIS7 – kto spróbowal uzyc FTPa wbudowanego w IIS7, ten szybko wybieral jakies inne rozwiazanie. Po prostu, na plycie instalacyjnej Windows 2008, znajduje sie wylacznie stara (znana z IIS6) wersja serwera FTP. Tymczasem, zupelnie bezplatnie dostepny jest "porzadny" FTP, z obsluga SSL, IPv6, wsparciem dla wirtualnych serwerów na jednym adresie IP i paroma innymi udoskonaleniami.
  • URL Rewrite 2.0 – potezny (w sensie mozliwosci) modul pozwalajacy na tlumaczenie "w locie" zapytan tak, zeby dlugie i zlozone (albo na przyklad nieaktualne) adresy URL zmieniac w cos, co uzytkownikowi wyda sie latwe do wklepania w pasku adresu przegladarki. Temat rzeka, ale bardzo rzetelnie omówiony w artykule Ruslana Jakuszewa.
  • URLScan 3.1 – znany od czasów pakietu IIS Lockdown mechanizm, pozwalajacy sprawdzic zapytanie http zanim zostanie ono przekazane w glab serwera. W efekcie, blokowane sa zapytania zawierajace .exe, wielokrotnie zenkodowane, majace w sobie typowe kawalki SQL Injection czy jakiekolwiek inne, które wydadza sie administratorowi niebezpieczne albo niepotrzebne. Oczywiscie, IIS sam powinien sie bronic, aplikacja tez i baza danych pod spodem równiez. Tyle, ze dzieki URLScan mozemy zlapac i zablokowac niedobre zapytania jak tylko dotra do serwera.
  • WebDAV – warty wspomnienia, bo czesto potrzebny, a w IIS7.x ma postac samodzielnego dodatku.
  • Windows Cache Extension for PHP – nie przepadam za PHP. To praktycznie ta sama technologia, która Microsoft pokazal kilkanascie lat temu pod nazwa ASP i która obecnie wydaje mi sie troche archaiczna. Ale skoro niektórzy ja lubia, to trzeba wspomóc rozwiazanie oparte o interpreter jakims cache. Moze dzieki temu osiagnie wydajnosc pozwalajaca na zastosowania inne niz forum pasjonatów czegostam czy prosty portal firmowy dla kilkunastu uzytkowników.
  • Windows Media Services – kolejny ogromy modul i masa dodatków do niego. Zasadniczo, chodzi o wszystko to, co potrzebne jest, zeby IIS publikowal media (audio i video) na zywo, na zadanie, z dynamicznym wykorzystaniem pasma, przez multicasty, z DRM czy jakkolwiek inaczej. To naprawde dziala i to nawet w duzych, intensywnie wykorzystywanych srodowiskach produkcyjnych.
  • PowerShell Snap-In for IIS 7.0 – czy trzeba cokolwiek dodawac? Nazwa dokladnie pokazuje o co chodzi. Kazdy kawalek zarzadzania IIS w postaci pieknych, prostych, powtarzalnych i automatyzowalnych polecen PowerShell.

Tylko tyle? Nie... to mój subiektywny przeglad, pokazujacy na co zwrócilem uwage. To nie sa wszystkie moduly, pewnie wcale nie najczesciej uzywane ani najwazniejsze. Po prostu w moich spotkaniach z IIS akurat takie tematy sie pojawily, ze pokazanie na blogu tych kilku modulów wydalo mi sie zasadne. Jezeli kogos interesuje wiecej – koniecznie powinien zajrzec na portal https://www.iis.net/download Kazdy opisany tam modul ma na dole strony z opisem zestaw uzytecznych linków. Warto sobie obejrzec.

Autor: Grzegorz Tworek [MVP]