Bu makaleyi kaleme alıyor olmamızın sebebi son zamanlarda IIS 7 ile ilgili gelen temel sorulara toplu bir yanıt vermektir. 5 Bölümden oluşacak olan makalemizin ilk bölümünde IIS kurulumu, IIS Elementlerinin tanımlanmasını, ikinci bölümümüzde ise uygulamalı web sitesi barındırmayı ve IIS üzerinde PHP çalıştırmayı, üçüncü bölümümüzde IIS FTP ve Basit Mail Hizmetinin Kullanımını ele alacağız. Makalemizin dördüncü bölümünde ise IIS in kaynak tüketimi yönetimine ve performans ayarlarına değiniyor olacağız.  Application Pool yapılandırmalarına da yine bu bölümde değiniyor olacağız. Makalemizin son bölümünde ise Cevaplandırılmış sorulara değineceğiz. Yani Makalemiz tamamlandığında ise IIS 7 ile ilgili şu konuları ele almış olacağız.

  • IIS i Hizmet Verecek Şekilde Kurma
  • IIS Elementlerini Tanıma
  • IIS Üzerinde Web Sitelerinin Host Edilmesi
  • Temel IIS Konfigürasyonları
  • IIS FTP ve Basit Mail Hizmetinin Kullanımı
  • .NET Sürümlerini IIS e Register Etme İşlemleri
  • IIS Üzerinde PHP Çalıştırma
  • IIS Kullanımı ile İlgili Temel Öneriler
  • Cevaplanmış Sorular
  • IIS Sunucu Kaynak Yönetimi
  • Application Pool Ayarları


IIS i Hizmet Verecek Şekilde Kurma

Şimdi isterseniz makaleye de başlayabilmek adına IIS i bir Rol olarak sunucumuza kuralım. İlk adım olarak Server Manager ı açalım ve Add Role e tıklayarak IIS i seçelim.

iisaddrole

 

Ben IIS in tüm özelliklerini yüklüyorum zira hem anlatım için hem de kendi kullanımım için bana bu özellikleri gerekli. FTP özelliğini ise sadece anlatım için yüklüyorum. Pek kullandığım ve verimli bulduğum bir FTP server özelliği yok aslında IIS FTP nin. Yada sadece kullanım alışkanlığım gelişmemiş olduğu için böyle düşünüyor olabilirim. IIS 6 ile ilgili bileşenleri ise yüklemenizi öneririm. Kimlik doğrulama ile ilgili bileşenleri de yine yükleyiniz zira Exchange kuracaksanız Exchange de buradaki bazı kimlik doğrulama yöntemlerine ihtiyaç duymaktadır.

İhtiyacınız olan IIS bileşenlerinin kurulumunu tamamladık isek Administrative Tools altına gelmiş olan Internet Information Services (IIS) Manager ı tıklayarak IIS yönetim konsolunu açalım.

iis1

 

A) IIS Elementlerini Tanıma

ASP.NET

Connection String : Yayınlamak istediğiniz web siteniz bazı dataları bir veritabanın dan çekecek ise bu bölümü kullanarak Web Config dosyanıza eklenmek üzere bir tane Connection String oluşturur. Aslında bunu çoğu kez web sitenizi hazırlarken girersiniz zaten. Fakat lokalde hazırlayıp IIS e attığınız web sitenizde bu bağlantı ayarları sıkıntı çıkartabilir çoğu zaman. O yüzden bu kısmı kullanmanız gerekebilir. Özetle belirtmek gerekirse bu kısım Web Config dosyanıza eklenmek üzere bir bağlantı dizisi ekler.

FTP

Uygulamalı olarak değineceğimiz bir bölüm olduğu için bu kısımla ilgili pek bir açıklama yapmıyorum şuan.

IIS

ASP : ASP için gerekli ayarların yapıldığı kısımdır. Bu alanda ASP için Limit ayarları, Debug ayarları, Caching ayarları, Sesion Limit ayarları ve Com Plus ayarlarını yapılandırabilirsiniz. Bu alanda gerekli ayarları yapılandırmak sistem bilgisinin yanında yazılım bilgisi de gerektirir. Bu alandaki ayarları değiştirmek veya Default değerde bırakmak uygulamanızın özellikleri ile ilgilidir.

Authentication : Kişilerin web sitenizi görüntüleyebilmesi için gerekli kimlik doğrulamalarını talep edebilmenizi sağlayan ayarlar bu kısımda yer alır.  Dışardan herkesin web sitenizi görüntüleyebilmesi için Anonymous Authentication ı Enable yapmanız gerekmektedir. Web sitenizin veya belirli sub domainlerinizin herkes tarafından görüntülenmesini istemiyor veya sadece yetkilendirdiğiniz kişilerin bu sayfalara erişmelerini istiyor iseniz de Anonymous Authentication ı Disable konumuna getirip diğer kimlik doğrulama metotlarından birisini seçmeniz gerekmektedir.

Authorization Rules: Kullanıcıların web sitelerine ve uygulamalara erişim yetkilerini bu kısımdan yapılandırabilirsiniz.

CGI : Client’ın gönderdiği input u alıp ilgili programa gönderip sonucunu yine client a dönderen bir arayüz protokolüdür. Javascript’in yaygınlaşması ile popülerliğini yitirmiştir.

Compression : Bu özellik istemci tarafına web sayfalarının sıkıştırılarak gönderilmesini sağlar. Bu sitenizin daha hızlı görüntülenmesini sağlayan güzel bir özellik olmakla beraber sıkıştırma sebebiyle istemci bilgisayarlara daha fazla efor sarf ettirebilir. Çünkü sıkıştırılan bu ögelerin istemci tarafından çözülmesi bu işlem için daha fazla CPU ve Ram kullanımını gerektirmektedir. Bizlerin önerileri js, php, htm, html, css, asp gibi dosya uzantıları için bu özelliğin aktif tutulması jpeg, mp3, rar, zip gibi zaten sıkıştırılmış formatlar için ise böyle bir işlemin yapılmamasıdır.

Default Documents : Web dizinimizdeki klasörler içerisinde yer alan dosyaların hangisini varsayılanda göstereceğini ve istemciye sunacağını IIS bu alandaki tanımlanmış dosyalara bakarak belirler. Bir klasör dizinine index.html isimli bir dosya attığınızda IIS o klasör içerisindeki dosyalardan ilk önce bu dosyayı görüntüler ve istemci tarafına bu sayfayı gönderir. Buradaki varsayılan dosya tanımlarının sırası da önemlidir. Örneğin bir dizinde default.aspx ve bir tanede index.html dosyası olsun diyelim, bunlardan hangisinin öncelikli olarak görüntülenmesini istiyor iseniz onu bir diğerinin üstüne taşımanız gerekir. Bu alanda login.aspx gibi bir dosyanın varsayılan ilk dosya olması gibi ihtiyaçlarınız olabilir, bu durumda yapmanız gereken login.aspx sayfasını tanımlayıp en üste taşımaktır. Ayrıca PHP kurulumundan sonra (ki bu kuruluma da değineceğiz) bu alana index.php dosyasının da eklendiğinden emin olmalıyız.

Directory Browsing : Bir dizinde varsayılan bir dosya türü olmadığında o sayfaya erişim izninizde olmayabilir. Veya bir web sitesinin içeriğinde hangi klasörler yer almakta hangi klasörlerde neler bulunmakta bunlardan haberdar olmayabilirsiniz. Eğerki ziyaretçilerinizin web dizininizde yer alan klasörlerin tüm içeriklerini görme gibi bir gereksiniminiz var ise bu özelliği aktif etmemiz gerekecektir.

iisdb

Normal web siteleri için bir güvenlik açığı olan bu özelliği bazı web siteleri kullanabiliyor. Aktif ettiğimizde dizinlerimiz şu şekilde görüntülenebilmektedir.

Error Pages : Adında anlaşılacağı üzere hata sayfalarımız ile ilgili gerekli düzenlemeleri bu kısımdan yapabiliyoruz. Kendinizin hazırlamış olduğu hata sayfalarını bu alandan gerekli ayarları yaparak kullanabilirsiniz.

Failed Request Tracing Rules : Başırız istekleri loglamak için bu yapılandırma ayarlarını kullanabilirsiniz.

FastCGI Settings : IIS te FastCGI uygulamalarını buradan ekleyip yapılandırmalarınıda yine bu bölümden yapıyoruz.

Handler Mappings : Belirli istek türleri için yanıtları işleyen DLL ler ve yönetilen kod gibi kaynakları belirtmek için kullanılır. PHP konfigürasyonunda bu bölüme tekrardan değineceğiz.

HTTP Redirecet : Sayfa yönlendirmelerinizi IIS üzerinden bu kısmı kullanarak yapabilirsiniz. Ben bu kısımda çok ihtiyaç duyulması ve sorulması sebebiyle de örnek olarak Exchange OWA yönlendirmesini örnek olarak uygulayacağım.

HTTP Response Headers : IIS yanıtlara eklenecek HTTP üst bilgilerini yapılandırmak için kullanılır.

IP Address and Domain Restrictions : Web sitenize veya web kaynaklarınıza belirli IP adreslerinden veya domainlerden erişimi engelleme veya erişme izin vermek için kullanılır.

ISAPI and CGI Restrictions : IIS sunucuda çalışabilecek ISAPI ve CGI uzantılarını belirlemek için kullanılır.

ISAPI Filters : IIS sunucuya yapılan ISAPI filtrelerini yapılandırmak için kullanır.

Logging : IIS in loğlarının nasıl tutacağını ve hangi dizinde tutacağını bu kısımdan ayarlayabilirsiniz. Örnek olarak ekliyeceğimiz bir web sitesi için bununla ilgili bir ayarlama yapacağız. Eğer ki bir web hosting hizmeti sunacak iseniz bunu belirttiğim şekilde ayarlamanız sizler için son derece önemli olacaktır. Zira artık web hosting hizmeti sunan firmalar bu loğları saklamak zorundadırlar.

MIME Types : Dosya türüne göre bu dosyayı açabilmek veya dosyayı görüntüleyebilmek amacıyla bu dosyayla ilişkili tanımların belirtilmesidir. Web sitenizde yayınlayacağınız bir dosya türünün client tarafından görüntülenebilmesi için gerekli MIME typeları tanımlamanız gerekir. IIS 7 de bilindik tüm MIME typelar tanımlı gelmektedir.

Modules : IIS e yapılan istekleri işleyen yerel ve yönetilen modülleri yapılandırmak için kullanılır.

Output Caching : İstemcilere sunulacak içeriği önbelleğe alma kurallarını buradan aktif edebilirsiniz. Aslında bu konuya dikkat çekmek istiyorum. IIS in istemcilere daha hızlı veri sunabilmesi için bu özellik tercih edilebilir bir kullanıma sahiptir. Çalışma mantığı istemcilere sunulacak olan verileri önbellekte tutmayı ve aynı isteği ikinci bir sefer istenildiğinde daha hızlı sunmayı hedefler. .pdf veya .doc gibi içeriği daha az değişebilecek dosyalar bu özelliği tercih etmeniz daha sağlıklı bir seçim olacaktır.

Request Filtering : Filtreleme kurallarını yapılandırmak için kullanılır. Örneğin web sitenizin gerekli bağlantı bilgilerini ve ayarlarını içeren web.config veya master page sayfanıza sanırım adını yazarak kişilerin ulaşabiliyor olmaları ciddi bir sıkıntı doğursa gerek. Aslında bu konuyu IIS in güvenlikle ilgili özelliklerini ele aldığımız bir başka makalede daha kapsamlı ele alabiliriz.

Server Certifation : Sunucunuz için SSL sertifikası oluşturmanıza veya satın oldığınız SSL sertifikasının sunucunuza yüklenmesine ile ilgili işlemleri buradan yapılandırabilirsiniz. Bunun ile ilgili uygulamaı bir örneğe makalemizde yer vereceğiz.

WebDav Authoring Rules : Kullanıcılar için içerik erişimi yetkilendirmelerini bu kısımdan yapabilirsiniz. Frontpage veya Web Expression kullanıyor iseniz bu programlar üzerinden web sitenizin içeriğine online müdehale eilmesi için buradan yetkilendirdiğiniz bir kullanıcı hesabı ile web sitenizi bu araçlar üzerinden düzenleyebilirsiniz.

Worker Processes : IIS üzerinde çalışan işlemler ve kaynak tüketimlerini bu kısımdan görüntüleyebilirsiniz.

Makalemizin birinci kısmını tamamlamış bulunuyoruz. Kısa bir süre sonra ikinci bölümde görüşmek dileğiyle…


2 Comments

Ferdi GÖK · 09 March 2011 at 12:04

çok teşekkürler, diğer bölümleri de en kısa sürede yayınlayabilirsiniz inşallah, kolay gelsin.

Hüseyin Sevin · 09 March 2011 at 13:03

Merhabalar Ferdi bey; ikinci bölümü bugün yayınlamayı planlıyorum. İş yoğunluğu sebebiyle aslında hem bu serinin hemde diğer makalelerimi aksatma durumum oluyor çoğu zaman. Hatta destek ve danışmanlık isteklerinede yine iş yoğunluğu sebebiyle çoğu kez geç cevap vermek durumunda kalıyorum, bu sebepten dolayı herkesten özür diliyorum.

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.