ISA Server 2004 ün özelliklerinden biride web caching tir. ISA server ın caching özelliğini özetlemek gerekirse , internette ziyaret edilen sayfaların bir kopyasını ISA server kendi üzerinde tutarak web konusunda hız ve performans sağlar. Büyük ölçekli bir ağ yapınız ve interneti yüksek yoğunlukta kullanan kullanıcılarınız var ise ISA server ın bu özelliği işinize çok yarayacaktır. ISA server üzerinde bu özelliğin konfigürasyonunu göstermeden önce caching mantığını anlatmak isterim ;
Aşağıda şekilde temel olarak bir caching senaryosu bulunmaktadır. İşleyişe bakmak gerekirse ;
Şekil -1
İlk adımda kullanıcı ISA serverdan internet isteğinde bulunur. ISA server kendine gelen bu isteği 2 no lu adımla hedef siteye iletir ve 3 no lu adımla bunun karşılığını alır. Bu almış olduğu veriyi direkt olarak kullanıcıya vermeden önce kendi ram?ine yazar ve ardından da kullanıcıya gönderir. Kullanıcıya gönderdikten sonra ram üzerindeki cache dosyasını diske yazar. Herhangi bir kullanıcı bu siteye bir daha girmek isterse caching özelliği devreye girer ;
Şekil -2
Burada kullanıcı aynı siteyi bir daha ziyaret etme isteğinde bulununca ( farklı bir kullanıcıda olabilir ) ISA server üzerindeki kurallar doğrultusunda ram ve hdd sini kontrol ederek , cache dosyası nerede ise oradan dosyayı çekerek kullanıcıya ulaştıracaktır.
Bu özellik sayesinde internet performansı artar ve bant genişliği korunur. ISA server cache olayını iki şekilde gerçekleştirmektedir. Biri ?Forward Caching? ki bu anlattığımız cache leme türüdür , bir diğer türü ise ?Reverse Caching? tir. İkinci tür cach leme ise işler tam tersine çalışmaya başlar. Yani ilk durumda içeriden gelen istekler doğrultusunda dışarıdan alına veriyi saklayarak hız kazandırırken ikinci durumda da ISA server arkasında internal veya perimeter network lerinde publish ettiği web sitelerini cache?leyerek dışarıdan gelen kullanıcılara hız ve performans sağlamaktadır. ISA server ın bu siteleri hangi periyotta yenileyeceği , cache dosyasını boyutu ve her bir cache işleminin fiziksel ram üzerinde ne kadar alan kaplayacağını ayarlama imkanına sahibiz. Bu işlem ISA server ın caching özelliğinin açılması ile gerçekleşmektedir , birde işlemini zamanlanmış görev olarak ta atayabiliyoruz . Bun işlemin çalışma mantığını incelemek gerekirse ;
Şekil -3
Burada görüldüğü üzere ilk iş olarak ISA server kendine verilen iş doğrultusunda ilgili siteye giderek cacheleme işlemini gerçekleştiriyor. Ardından kullanıcıdan bir istek geldiğinde ise kullanıcıya kendi üzerinde tuttuğu cache dosyasını yolluyor.
ISA 2004 kullanan ve birden fazla ofisi olan bir şirkette merkezi cache leme işlemi gerçekten de hız ve de performans sağlayacaktır. ISA server 2004 ün enterprise versiyonun desteklediği bir hizmet olan CARP sayesinde her bir ISA server üzerinde ayrı bir cache dosyası tutulabilir ve bu ayrı serverlar tüm kullanıcılara hizmet vererek hız ve performans artışı sağlarlar. Aynı zamanda cache datası istenmesi halinde sadece merkez de de tutulabilmektedir. Birden fazla ISA üzerinde tutulan cache mantığı aşağıdaki şekilde daha iyi anlaşılmaktadır.
Şekil - 4
Şu ana kadar cache hakkında ve ISA server ın bu özelliği hangi mantıkla çalıştığını anlatmaya çalıştım. Şimdi bu özelliği ISA üzerinde nasıl konfigüre edeceğimize geçelim ;
ISA Server da cache işlemi için tanımlanması gereken 4 temel adım bulunmaktadır ;
1. Define cache drives : Cache dosyalarının nerede ve ne boyutta olacağını belirlemek
2. Configure caching settings : Cache ayarlarını konfigüre etmek
3. Configure caching rules : Cache leme işlemi için kural tanımlamak
4. Configure content download jobs : Belirlenen sitelerin belirlenen zamanlarda cache leme işlemine tabi tutulması
DEFINE CACHE DRIVERS
İlk adımda cacheleme işlemi yapacak olan ISA server?ın bu işlem için hangi diski hangi boyutta kullanacağını belirler.
Şekil -5
Bunu için ISA server yönetim konsolunda Caching e sağ tıklayıp ?Define cache drives? sekmesine tıklıyoruz.
Şekil - 6
Karşımıza çıkan bu ekranda ISA server yüklü olan makinemiz deki diskleri ve boş alanları görmekteyiz. Burada cache işlemini gerçekleştirmek istediğimiz diski ve onun üzerinde cacheleme için ayrılacak alanı belirtiyoruz , ardından ?set? ve ?ok? e basıyoruz.
Şekil - 7
Karşımıza bu uyarı sayfası çıkacaktır. Burada bu işlemin ISA Server ın servislerinin tekrar başlatılarak veya başlatılmayarak bu değişikliğin gerçekleşmesini seçebiliriz. İşlemin sağlıklı olmasın için servislerin restart yapılması yararlı olacaktır.
CINFIGURE CACHING SETTINGS
İkinci adımda ISA Server yönetim konsolunda Cache sekmesinde sağ tarafta bulunan ?Configure cache settings? e tıkladığımızda aşağıdaki ekran ile karşılaşacağız.
Şekil - 8
Bu ekran cacheleme işlemi için 4GB lık alanın ayrıldığını gösteriyor. Üstte bulunan sekmelerden biride ?Active Caching? tir. Buraya tıkladığımızda
Şekil ? 9
Karşımıza bu ekran çıkacaktır. Nedir Active caching ? ISA Server, önbellek içerisindeki nesnelerin otomatik olarak yapılandırılmasına imkan tanımaktadır. Aktif caching yardımı ile sıkça erişilen nesneler, yok olmadan önce güncellenebilmektedir. Burada amaç, istemcilerin erişim sürelerini kısaltmak ve daha hızlı bir erişim ortaya koymaktır. Bundan dolayı kesinlikle bu seçenek ?Enable? olmalıdır. Aşağısındaki seçenek ise bu işlemi hangi hızda yapacağını ayarlamaktadır. Bunun normal ayarda kalmasını tavsiye ederim.
Advanced kısmına geçtiğimizde ise karşımıza aşağıdaki ekran gelecektir.
Şekil - 10
Buradaki ilk seçenek ?En son güncellenme süresi belirli olmayan siteleri de güncelle? , ikincisi ise http 200 kodu göndermeyen siteleri de güncelledir. HTTP 200 kodu bir sitenin tamamen hatasız bir şekilde indirilmesi halinde en son yollanan doğrulama kodudur. Bir sonraki seçenekte ise bir URL sayfasının Fiziksel hafıza üzerinde kaplayabileceği maksimum değer yer almaktadır. Bu default değer yeterlidir ve bunu arttırmak sistem performansını düşürmektedir. Bir sonraki seçenekte ise cacheleme işlemine tabi tutulan site eğer şu anda hizmet vermiyorsa ne yapılacağına karar vermememizi sağlar. İlk seçenek seçilirse kullanıcı cache den değil de direkt internetten alır bilgiyi. İkinci seçeneğin seçilmesi halinde ise bir zaman periyodu içerisinde var olan cache den istemcilere veri yollanmasına devam edilir. Buradaki rakamların ifade ettiği şey ; bu durumda bu sitenin Time to live süresinin %50 si dolduğunda ve 1 saat a kadar bu işlem devam etsin demektir. İki parametre olmasının sebebi şudur. Mesela bu site için TTL süresi 6 saat ise bunun %50 değeri 3 saat eder , ama biz maksimum bir saat kalmasını istediğimizden dolayı 1 saat kalacaktır. En alttaki seçenek ise çok önemli bir seçenektir , cacheleme işlemi için fiziksel bellekten ne kadar yer ayrılacağıdır. Buraya girilen değerler % cinsindendir.Sisteminizdeki ram ve çalışan diğer servislere göre bu değeri değiştirebilirisiniz. Örneğin ISA server ayrı bir makinede yüklü ise bu ram değerini arttırmanı mümkündür ancak başka servislerin çalıştığı bir server üzerinde yüklü ise bu değer ile oynamamanızı tavsiye ederim.
CONFIGURE CACHING RULES
Üçüncü adımda ISA Server yönetim konsolunda Cache sekmesinde sağ tarafta bulunan ?Create a cache Rule? e tıkladığımızda aşağıdaki ekran ile karşılaşacağız.
Şekil - 11
Burada Kuralımıza açıklayıcı bir isim verdikten sonra next diyerek ilerliyoruz

Şekil -12
Bu kurların geçerli olacağı hedef kısmı seçmeliyiz , burada pek çok seçeneğimiz var. ?External? deyip tüm web üzerindeki cache leri etkileyecek bir kural tanımlayabileceğimiz gibi bazı siteler için ( örneğin Microsoft.com ) ayrı kural tanımlayabiliriz. Bunu için sadece hedef kısmında external yerine New domain set veya New url set yardımıyla bu sayfaları tanıtmamız yeterli olacaktır. Şu anda biz external ı seçip ileri diyoruz
Şekil - 13
Buradaki seçenekler ise sırasıyla şunları seçme imkanı tanır bize ;
· Eğer cache de ilgili sitenin geçerli bir versiyonu varsa cache den , yoksa direkt olarak siteden cevap gönder istemciye
· Eğer cache de ilgili sitenin herhangi bir versiyonu varsa cache den , yoksa direkt olarak siteden cevap gönder istemciye
· Eğer cache de sitenin herhangi bir versiyonu yoksa isteği düşür.( yani nete istek yollamaz)
Biz ikinci seçeneği seçip devam ediyoruz.

Şekil - 14
Buradaki ilk seçenek hiçbir içeriği cachelenmeyeceğini belirtir. ikinci seçenek ise güvenli bir içerik olması halinde cache leme işlemine bunları da katmasını belirtmektedir.Altında ise
- Dinamik içeriği cachelemsi ki bu çok mantıklı değildir. Sürekli hareketli olan bir sayfayı cachelemek .
- Offline browserlarında cache ini almasını sağlar. Microsoft offline player gibi
- Kimlik sorgulaması yapan içeriği de almasını sağlar.
Ardından ileri diyoruz ve aşağıdaki ekran ile karşılaşıyoruz

Şekil - 15
Burada cachelenen her obje başına bir boyut belirleme imkanımız vardır. Mesela cache lemek istediğiniz bir sitede yer alan ; doc,pdf,asp,jar,html,exe,jpg vs gibi her bir obje için bir boyut belirleyebiliriz . Altında ise SSL li sitelerin de cachelenmesini isteyebiliriz. Tekrar ileri diyoruz ;

Şekil - 16
Burada bu cacheleme işlemleri sonucun da alınan cachelerin ne kadar serverda saklanacağını ayarlıyoruz. TTL süresinin %20 si olarak ayarlanmış. Time to live süresini ise web adresinden alıyoruz. Ama bu süreyi kendimiz belirlemek istersek en aşağıda bulunan kutucuk işaretlenir ve hemen üstündeki kutucuklar sayesinde alt ve üst sınırlar belirlenebilir. Yine ileri diyoruz

Şekil -17
Burada da ftp siteleri için cache süresini ayarlayabiliriz. Tekrar ileri diyoruz

Şekil - 18
Ve artık kuralımız hazır.
CONFIGURE CONTENT DOWNLOAD JOBS
Dördüncü ( olarak isteğe bağlı ) adım da ise cache job ( iş ) tanımlayabiliriz. ISA server yönetim konsolundan Cache kısmına gelip sağ tarafta bulunan ?Schedule a content download job? a tıklıyoruz ve aşağıdaki adımları izliyoruz ;
Şekil - 19
Job için açıklayıcı bir isim veriyoruz ve next diyoruz
Şekil - 20
Bu job ın hangi sıklıkla çalışacağını ayarlamamızı sağlayan bir ekran çıkar karşımıza. Burada sırasıyla
Bu sihirbaz bitiminde bir sefere mahsus çalışması
Zamanlanan sürede bir sefer çalışması
Günlük çalışması
Haftalık çalışması
Biz haftalık kısmını seçip ileri diyoruz
Şekil - 21
Haftanın hangi günleri çalışması gerektiğini ayarladım ve bu iş 28.03 tarihinde sabah 08:00 da başlayacak ve her 1 saatte bir tekrarlanacak ( her saat başı cache leme yapacak) ta ki saat 23:59 olana dek. Tabi şirketlerde çalışma saati 18:30 olduğundan bundan sonra cache lemesine gerek yoktur ve bu süre değiştirilebilir. Tekrar ileri diyoruz
Şekil - 22
Cache leme işlemini yapacağımız internet sitesinin tam adresini yazıyoruz. Altındaki seçeneklerin ilkinde ana sayfa üzerindeki linkleri cachelememesini sağlar ki bu faydalı olacaktır yoksa bütün internet cachelenmeye başlar. Diğer seçenek ise ana sayfa üzerindeki linklerden her biri için kaç alt sayfayı cacheleyeceğimizi belirtiriz ki bu değer için 1 iyi bir rakamdır. Hemen altında bu site için 60.000 adetten fazla obje almamasını sağlarız , onun altında ise bu işlemi gerçekleştirirken bu siteye kaç adet bağlantı yapılması gerektiğini belirtebiliriz. Bu rakamı arttırmak cacheleme süresini düşürür fakat internet bant genişliğini de azaltır. Tekrar ileri diyoruz
Şekil - 23
Karşımıza çıkan sayfada ne tür den içeriklerin cacheleme işlemine tabi tutulacağı ile bu site için cache de kalma süresi ayarlanabilir. İstersek caching rule sırasında tanımlanan TTL süreline uyar istersek de belirlediğimiz bir süre cache de kalır. Tekrar ileri diyoruz ve job ı bitiriyoruz.
Şekil ? 24
Bu sayede bir cache job ı belirlemiş olduk.
ISA üzerinde cache mantığının nasıl işlediğini ve bu özelliğin nasıl konfigüre edileceğini anlatmaya çalıştım . Umarım faydalı olmuştur.
Kaynak : 2824: Implementing Microsoft Internet Security and Acceleration Server 2004