8 Ağustos 2012 Çarşamba

ARR Nedir?





ARR

APPLICATION REQUEST ROUTING



Çeviren:Nurullah Yılmaz



ARR, Web sunucuların yönetimine, sağlayıcı sunucuların barındırılmasına ( yapılan ayarlama
içinde korunmasına), CDN’ lerdeki ölçeklenebilirlik ve güvenilirlik  özelliklerinin arttırılmasına,
bilgisayar kullanıcısı ile sunucu isimlerinin ilişkilendirilmesine, HTTP sunucusundaki isteklerin
yük dağılımının yapılmasına ve disklerdeki ön belliğin dağıtılmasına izin veren bir IIS yazılımıdır.
ARR ile birlikte adminler, uygulama sunucuları için kaynak kullanımını, web sunucu alt birimleri
(farms) için yönetim maliyetini ve paylaştırılmış depolama ortamının azaltılmasını kontrol
edebilir.
IIS Application Request Routing ( ARR) sunucu yöneticilerine, URL, HTTP başlıkları ve  sunucu
değişkenleri üzerinde güçlü temel routing –  based yapısı oluşturmaya izin verir  ve  o  anki  en
uygun web sunucusunu belirler. ARR uygulama seviyesindeki kararların yönlendirilmesini yapar
ve HTTP isteklerine göre donanımdaki yük dengesinin yapılmasına veya Windows network
yükünün dağıtılmasına aracılık eder. Bunun yanında ARR sunucu ile istemci arasında isim
doğrulamasını ve sunuculardaki konfigürasyon ayarlarının tutulmasını sağlar. 
ARR yöneticilere oluşturma, yönetme ve sunucu farmlarında bulunan  uygulamalar için yük
dengelemesinin yapılmasını sağlar. Ayrıca  ARR ile  sunucuyu  etkilemeden sunucu farmları
eklenebilir veya çıkarılabilir.
ARR ile gelen önemli özelliklerden biri de URL test ve canlı trafik bilgilerini kullanabilme ve toplu
çalışma istatistiklerini görüntüleyebilmedir. 
ARR sunucudan geçen herhangi bir http trafiğini diskte önbelleğe alabilmektedir. ARR, ISS
sunucularda  bir  algoritma  yapısı  ile  diskte  önbelleğe  alma  özelliğini  yapılandırarak  CDN
sunucularda meydana gelen ağ trafiğini azaltır. Bu yeni özellik verimli bir şekilde kaynak
sunuculara HD 720 kalitede video izlenmesine olanak sağlamaktadır.

Özellileri

  •   HTTP  özelliklerinin  temel  kurallarını  kullanarak  HTTP  isteklerini  düzenli  bir  şekilde
  • incelemek.
  •   Gelişmiş yük dengeleme algoritmaları kullanarak HTTP isteklerine cevap verebilecek
  • uygun sunucuları belirlemek.
  •   Sistemdeki canlı trafiği ve URL yapılanmasını izleyerek sistemin durumu hakkında bilgi
  • verebilmek.
  •   İstemciler ARR ile çerezleri kullanarak isteklerini belirli bir sunucuya yönlendirebilirler.
  •   Ana  bilgisayarları  Web  sunucusu  ile  yönetmek  ve  yeni  işlemler  için  performans
  • oluşturmak.
  •   Pilot yönetime izin verilmiş sunucu farmlarını yönetmek ve A\B senaryolarını test etmek.
  •   IIS Manager ara yüzünden tüm konfigürasyon ayarlarını yönetmek  ve  izlemek  ayrıca
  • toplu çalışma zamanı istatistiklerini izlemek.
  •   Failed Request Tracing Rules  (Başarısız İstekleri İzleme Kuralları) desteği.
  •   Disk tabanlı önbelleğe alma
  •   Önbellek hiyerarşisi yönetimi
  •   CDN \ ECD ortamında önbellek proxy düğümü
  •   Sıkıştırılmış nesneleri önbellekleme
  •   IIS Manager kullanarak önbellek içeriğini tarama
  •   URL modelleri eşleme tarafından önbelleğe içeriklerini kaldırma
  •   Cache-kontrol direktifleri geçersiz kılma
  •   Warming up cache mode özelliği
  •   (Intelligent byte-range) Akıllı byte – uzaklık desteği
  •   (Intelligent live request) Akıllı Canlı istek desteği
  •   Önbellek yanıtlarını sunabilme















1. ARR KURULUMU


ARR paketinin kurulumu aşağıdaki bileşenleri içermektedir;
  •   Microsoft URL Rewrite Module for IIS 7.0
  •   Microsoft Web Farm Management Version 1 for IIS 7.0
  •   Microsoft Application Request Routing Version 1 for IIS 7.0
  •   Microsoft External Cache Version 1 for IIS 7.0

ARR paketini kurarken yukarıdaki dört bileşende kurulacaktır.


İlk Gereksinimler ( Ön Koşullar)


ARR paketini kurmadan önce aşağıdaki koşullara dikkat edilmelidir;

  •   Windows 7 veya Windows Server 2008 (x86 veya x64) işletim sistemi üzerinde ARR’ ın kurulacağı IIS 7 veya IIS 7.5’ in kurulu olması
  •   IIS üzerinde aşağıdaki yazılım yüklü ise Program Ekle\Kaldır kısmından bu yazılımları kaldırmak.
  •   Microsoft URL Rewrite Module for IIS 7.0 CTP1.
  •   Microsoft Application Request Routing for IIS 7.0 CTP1.

Kurulum esnasında karşılaşılabilecek hatalar;


Upgrading  from  CTP1  to RTW  release is not supported:  CTP1’i devre dışı etmeden önce 
manuel olarak çıkarılması gerekir. Aksi takdirde tüm yapılandırma ayarları kaybolur.
Upgrading  from  RC  to  RTW  release  is  supported :  RC sürümünün kaldırılmasına gerek
yoktur. Hiçbir ayar kaybı yaşanmaz.

1.Adım: Download Microsoft Application Request Routing Version 2.1
IIS.  Net IIS hakkında aradığınız çoğu bilgiyi ve dosyayı bulabileceğiniz bir web sitesidir.
Buradan ARR V.2.1’ in 32 bit ve 64 bit sürümlerini ücretsiz temin edebilirsiniz.

2.Adım: Install Microsoft Application Request Routing Version 2.1
  Administrator olarak command prompt uygulamasını açın.
  WAS ve WMSVC işlemlerini command prompta yazarak durdurun. ARR bir düzenleme
eklentisi olduğundan  bu  gereklidir.  WAS  ve WMSVC  işlemlerini  durdurmak  için
aşağıdaki komutları yazın;
net stop was /y
net stop wmsvc /y

  İndirdiğiniz ARR.exe yazılımını çalıştırın.
  Lisans Antlaşmasını kabul edin.
  Önceki kısımda da belirtilen dört bileşenin yüklenmesini bekleyin.
  Yüklemeyi tamamlayın.
  Tüm paketlerin düzgün kurulduğunu kontrol etmek için bilgisayarınızın Run kısmına
%TEMP%\arr_setup.log  yazın ve Enter’ a basın karşınıza aşağıdaki yazılanlar geliyor
ise kurulumunuz başarılı demektir.

rewrite.msi   Success
webfarm.msi   Success
requestrouter.msi   Success
externaldiskcache.msi   Success

  WAS ve WMSCV işlemlerini command promp yardımı ile başlatın. Başlatmak için
aşağıdaki kodları yazın;
net start was
net start wmsvc



3.Adım:  Application  Request  Routing  İçin  Application  Pool  Process  Mode  Yapısını
Değiştirme
Tüm HTTP istekleri Application Request Routing eklentisinin içerisinden geçer. Bağımsız bir
şekilde Application Pool üzerinden işlemlerinizin gerçekleşmesini isteyebilirsiniz. Bu adımda
Varsayılan Web Sitesi için Uygulama Havuzu Süreç Modeli altında Boşta Zaman Aşımı kısmı
serbest bırakılır.
UI kullanarak uygulama havuzu işlem modeli değiştirmek için;
  IIS Manager’ i çalıştırın
  Application Pool kısmına gelin;



  Buradan Advanced Settings kısmına gelin ve Idle Time-out (minutes) kısmına 0 yazın.
Bu özellik artık disable olmuştur. OK diyerek değişiklikleri kaydedin.



Komut satırını kullanarak uygulama havuzu işlem modelini değiştirmek için:
  Administrator olarak komut satırını açın,
  RUN kısmına  %windir%\system32\inetsrv yazın.
  apcdm kısmını açın ve pencereye appcmd.exe  set  apppool  "DefaultAppPool"  -processModel.idleTimeout:"00:00:00" /commit:apphost yazın.

Kaldırmak İçin
  Control Paneline gidin,
  Programlar ve Özelliklerini seçin
  Aşağıdaki dört eklentiyi bulup kaldırın;
Microsoft Application Request Rouitng Version 1 for IIS 7
Microsoft External Cache Version 1 for IIS 7
Microsoft URL Rewrite Module for IIS 7.0
Microsoft Web Farm Framework Version 1 for IIS 7  



2. APPLICATION  REQUEST  ROUTING  SERVER  FARM TANIMLANDIRMA VE YAPILANDIRILMA


Bu başlık adı altında Application  Request  Routing  ile  Server  Farm  tanımlama ve yapılandırma
incelenmiştir. 
Server Farm yapıları uygulama sunucuların yükünü azaltan mantıklı sistem yapılarıdır. Basit bir
Server Farm yapısı aşağıda gösterilmiştir;





İlk Gereksinimler ( Ön Koşullar)


Server Farm oluşturmadan önce aşağıdaki koşullara dikkat edilmelidir.

  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  Minimum iki adet uygulama sunucusu

1. Adım: Microsoft Application Request Routing üzerinde Server Farm Oluşturma
  IIS Manager’ i çalıştırın,
  Application Request Routing sunucu seviyesinde bir özelliktir. Bu sunucu üzerine gelin ve
içeriğine girin,



  Server Farm üzerine gelin ve sağa tıklayarak Create Server Farm seçeneğini seçin,



  Server Farm’ a isim verin ve Next butonunu seçin,


  Sıradaki adım sunucuları Server Farm’ a eklemek. Server Farm’ a dahil etmek istediğiniz
sunucuları seçin ve ADD seçeneğini tıklayın. Advanced  Options  kısmından çıkış portu
ayarlanabilir.

  

Eğer Server Farm’ ı komut satırından kurmak istiyorsanız;
  Administrator olarak komut penceresini açın,
  Run kısmına %windir%\system32\inetsrv yazın ve entera basın,
  Server Farm’ın ismini kısmını oluşturmak için komut satırına appcmd.exe set config  -section:webFarms  /+"[name='myServerFarm']"  /commit:apphost  yazın (server ismi
myServerFarm olarak girildiğini varsayalım ).
  Server  Farm  grubuna  yeni  sunucu  eklemek  için   appcmd.exe  set  config   -section:webFarms  /+"[name='myServerFarm'].[address='wonyoo-w2k8']"
/commit:apphost yazın (eklenen sunucunun ismini wonyoo-w2k8 varsayalım). Ekleyeceğiniz
her sunucu için bu işlemi tekrarlayın.

2.Adım:  Microsoft  Application  Request  Routing  için  Server  Farm  Ayarlarının
Yapılandırılması
Server Farm’ ı oluşturduktan ve tanımladıktan sonra ek özellikler ARR davranışlarını  kontrol
etmek için ayarlanabilir. Bu kısımda bu ayarlar hakkında bilgi verilecektir.

UI kullanarak Server Farm özelliklerini yapılandırmak için;
  Oluşturduğunuz Server Farm ( myServerFarm oluşturduk varsayalım ) üzerine gelin ve
seçin. Karşınıza aşağıdaki gibi bir ekran gelecektir;




  Eğer Server Farm’ ın yük ayarını değiştirmek istiyorsanız Load Balance seçeneğine çift
tıklayarak  ayarları  değiştirebilirsiniz.  Load  Balance  kısmına  girdiğinizde  karşınıza
aşağıdaki gibi bir ekran gelecektir. Load balance algorithm kısmına Weighted round
robin, Load distribution kısmına ise Even distribution seçeneklerini girelim ve Apply
butonunu tıklayalım.



  Bir sunucunun çalışmasının sağlıklı olup olmadığını da ARR sayesinde öğrenebiliriz.
Health  Test  kısmından URL’ ye GET  göndermesini isteyebilir ve bunu izleyebiliriz.
Health Test kısmına girdiğimizde karşımıza aşağıdaki gibi bir ekran gelir. Diğer ayarlar
tamamen  sisteminizin  özelliklerine  göre  belirlenmelidir.  Bu  kısım  önceden  de
belirtildiği gibi sadece sistemin sağlıklı bir şekilde çalışıp çalışmadığını test etmek için
oluşturulmuştur. Sistemin sağlıklılık kriteri tamamen kullanıcının isteğine bağlıdır. GET
göndermek  istediğiniz  URL’  yi  seçip  Verify  URL  Test  butonunu  seçerek  işlemi
tamamlayabiliriz.





3. APPLICATION REQUEST ROUTING’ DE HTTP LOAD BALANCİNG

ÖZELLİĞİNİ KULLANMA


Bu bölümde HTTP isteklerini ARR üzerinden daha hassas ve kullanışlı bir şekilde sunuculara
dağıtılması  ele  alınmıştır.  Ayrıca  istemci  taleplerinin  nasıl  karşılandığı  hakkında  bilgiler
verilmektedir.
İlk Gereksinimler ( Ön Koşullar)

  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  Minimum iki adet uygulama sunucusu


1.Adım: URL Tekrar Yazma Kurallarını Doğrulamak
Bir önceki kısımda yeni bir Server Farm yapısı oluşturmuştuk. Bu yapı üzerinden devam
edelim.

UI kullanarak URL tekrar yazma kurallarını doğrulamak için;
  IIS Manager’ i açın.
  Oluşturduğunuz Server Farm’ a gelin ve çift tıklayın (myServerFarm isimli  sunucu
gurubu oluşturduğumuzu varsayalım.). Karşınıza aşağıdaki gibi bir ekran gelecektir;

       
  Routing  Rules  seçeneğine gelin ve çift tıklayarak açın. Karşınıza aşağıdaki gibi bir
pencere geldiğini göreceksiniz;



  Use URL Rewrite to inspect incoming requests kısmının işaretli olduğuna dikkat edin. 
  Enable  SSL  offloading  ilk ayarlarda etkindir yani yukarıdaki şekilde de görüldüğü
üzere kutu işaretlidir.  Bu uygulamaya izin verildiğinde ARR server ile application
server arasındaki tüm trafik düz metinler halinde yapılır. Aynı durum ARR sunucu ile
istemciler arasındaki trafik için de geçerlidir. ARR sunucusu ve uygulama sunucusu
güvenli bir network ağına üye edilirse, başarılı bir şekilde benzer datacenter üzerinde
olurlar ve SSL güvenlik uygulamasından taviz vermez.  Ayrıca bu özelliği kullanmak
sunucu kaynaklarından verimli bir şekilde faydalanmaya olanak sağlayabilir.
  Eğer  Enable  SSL  offloading  özelliğini  kullanmak  istemiyorsanız  kutudaki  işareti
kaldırın ve Apply butonuna tıklayın.
  Browser penceresini açın ve ARR sunucuya birkaç istek gönderin.
  Gelen  isteklerin  server  farm  üzerindeki  sunuculara  düzgün  bir  şekilde  dağılıp
dağılmadığını görmek için Monitoring  and  Management  modülünü seçin. Karşınıza
aşağıdaki gibi bir pencere gelecektir.



  İsteklerin  eşit  olarak  dağıldığını  görüyorsanız  uygulamanız  sorunsuz  çalışıyor
demektir.

Komut satırlarını kullanarak URL tekrar yazma kurallarını doğrulamak için;
  Komut penceresini administrator olarak açın.
  Bilgisayarınızın Run kısmına %windir%\system32\inetsrv yazın ve klasöre girin.
  URL tekrar yazma kurallarını doğrulamak için komut satırına appcmd.exe list config -section:system.webServer/rewrite/globalRules  komutunu  girin.  Komut  satırına
global kurallarla ilgili satırlar gelecektir. Bu aslında aşağıdaki yazılan global ayarlarla
aynıdır;

<system.webServer>
 <rewrite>
   <globalRules>
      <rule name="ARR_myServerFarm_loadbalance" patternSyntax="Wildcard"    
stopProcessing="true">
        <match url="*" />
        <conditions>
        </conditions>
        <action type="Rewrite" url="http://myServerFarm/{R:0}" />
      </rule>
    </globalRules>
  </rewrite>
</system.webServer>

  URL yeniden yazma kurallarında disable  SSL  offloading  özelliğini kaldırmak  için ise
komut satırına;
appcmd.exe  clear  config  -  section:system.webServer/rewrite/globalRules  yazılması
gerekir.
  Bundan  sonra  HTTP  trafiğini kendi isteğinize göre oluşturabilirsiniz. Eğer gelen istek
HTTPS ise ARR bu isteği SSL’ i kullanarak karşılayacaktır. Bu ayarlamalrı yapmak için
komut satırına sırası ile;

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/+"[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',s
topProcessing='True']" /commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',sto
pProcessing='True'].match.url:"*"  /commit:apphost


  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/+"[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',s
topProcessing='True'].conditions.[input='{HTTPS}',pattern='On']"
/commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/[name='ARR_myServerFarm_loadbalance_SSL',patternSyntax='Wildcard',sto
pProcessing='True'].action.type:"Rewrite"/[name='ARR_myServerFarm_load
balance_SSL',patternSyntax='Wildcard',stopProcessing='True'].action.url:"htt
ps://myServerFarm/{R:0}"  /commit:apphost

yazılmalıdır. Düz metin (clear text) olarak HTTP trafiğini iletmek istiyorsanız URL
rewrite rules özelliğini aşağıdaki komutlarla düzenleyebilirsiniz;

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopP
rocessing='True']" /commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopPro
cessing='True'].match.url:"*"  /commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopPro
cessing='True'].action.type:"Rewrite"
/[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopPro
cessing='True'].action.url:"http://myServerFarm/{R:0}"  /commit:apphost

  URL yeniden yazma kurallarının doğru çalışması için SSL ayarları doğru girilmelidir.
appcmd.exe  list  config  -section:system.webServer/rewrite/globalRules   kodu  bu
doğrulamayı bize sunar. Yaptığı işlem aşağıdaki kod bloğunun yaptığı işleme benzer;
<system.webServer>
  <rewrite>
    <globalRules>
      <rule name="ARR_myServerFarm_loadbalance_SSL" patternSyntax="Wildcard"
stopProcessing="true">
        <match url="*" />
        <conditions>
          <add input="{HTTPS}" pattern="On" />
        </conditions>
        <action type="Rewrite" url="https://myServerFarm/{R:0}" />
      </rule>
      <rule name="ARR_myServerFarm_loadbalance" patternSyntax="Wildcard"
stopProcessing="true">
        <match url="*" />
        <conditions>
        </conditions>
        <action type="Rewrite" url="http://myServerFarm/{R:0}" />
      </rule>
    </globalRules>
  </rewrite>
</system.webServer>
2. Adım: Health Check Monitoring Ayarları
ARR, içerdiği sunucuların sağlıklı bir şekilde çalışıp çalışmadığını iki şekilde inceler;
  Canlı trafik üzerinden izleme yaparak,
  URL test yoluyla izleme yaparak,
Canlı trafik üzerinden yapılan izlemede istek ARR sunucuya geldiğinde izleme otomatik olarak
yapılır. URL test yoluyla izleme ise canlı trafik izleme yoluna getirilmiş bir ek uygulamadır. Bu
bölümde URL test yoluyla izlemenin nasıl yapıldığına değinilecektir.

UI kullanarak health check monitoring ayarını yapmak için;
  URL test izleme adından da anlaşılacağı üzere Bir URL üzerinde uygulanır. Bu isteği
karşılamak  için  bir  text  dosyası  hazırlanmalıdır.  Bu  text  dosyasının  isminin
 healthCheck.txt olduğunu varsayalım. Bu dosyanın içine ise “ben sağlıklı duyuyorum.
Sorun yok. ” gibi bir mesaj yazdıralım.
  Uygulama sunucusu üzerinde healthCheck.txt isimli bir dosya oluşturun.
  Bu dosyayı bilgisayarınızda bulunan bir internet tarayıcı ile açın.
  Önceden oluşturduğunuz server farmınızın üzerine gelin ve çift tıklayarak içine girin.
Aşağıdaki gibi bir ekran ile karşılaşacaksınız. Buradan Health Test kısmına girin.




  Health Test kımına girdiğinizde karşınıza aşağıdaki gibi bir konfigürasyon menüsü
gelecektir. Buradan gerekli ayarlamalar yapılacaktır.




  URL kısmına önce kısımda internet tarayıcısı ile açtığınız dosyanın adresini girin. URL
adresi  http://(server  name  or  FQDN  of  ARR  server)/healthCheck.txt  gibi  bir  isme
sahip olmalıdır.
  Response match kısmına ise sağlıklı olduğu durumdaki vereceği mesajı yazın. Yukarıda
“Ben sağlıklı duyuyorum. Sorun yok.” Mesajını girmiştik bu örneği girebilirsiniz.
  Interval kısmında bu mesajın ne kadar süre aralıklarla yazılacağını belirtebilirsiniz.
  Time-out kısmından ise istek gönderildikten sonra bekleme süresi ayarlanabilir. 
  Ayarları kaydetmek için Apply seçeneğini seçin.
  Artık ayarladığınız süre periyotları boyunca sağlık testi yapılacaktır. Bu işlem rutin
olarak devam edecektir.
  İsteklerin  sunucular  üzerinde  düzgün  dağılıp  dağılmadığını  görmek  için  sürekli
yenilemekte  fayda  vardır  (  F5  tuşu  ile  ).  Gerekli  durumda  ise  servis  yeniden
başlatılmalıdır.

 Komut satırlarını kullanarak health check monitoring ayarını yapmak için;
  Komut satırını administrator olarak açın.
  Bilgisayarınızın Run kısmına girin ve %windir%\system32\inetsrv yazın.
  Gelen pencereden appcmd.exe’ yi açın ve http://(server  name  or  FQDN  of  ARR
server)/healthCheck.txt ve “Ben sağlıklı duyuyorum. Sorun yok.” mesajını yazmak
için aşağıdaki kod bloğunu girin;

  appcmd.exe set config  -section:webFarmsv
/[name='myServerFarm1'].applicationRequestRouting.healthCheck.url:"http
://(server name or FQDN of ARR server)/healthCheck.txt "
/[name='myServerFarm1'].applicationRequestRouting.healthCheck.respons
eMatch:"I am healthy."  /commit:apphost

3.Adım: İstemci ile İlişkilendirme Ayarlarının Yapılması

ARR, istemci ile uygulama sunucusu arasında ilişkilendirme de yapar. Bu işlem istemcinin
uygulama sunucusuna bağlı olduğu  süre boyunca gerçekleşir. Bu işlemi yapan uygulama ise
ARR’ ın başka bir özelliği olan Server Affinity’ dir. Bu uygulamaya izin verildiğinde yük
dengeleme algoritması sadece istemcinin en ilk isteğinde çalışır. Bundan sonraki işlemlerde
farklı istemcilerden gelen aynı  istekler aynı istemci sunucusuna  yönlendirilecektir. Yük
kalabalığını azaltmak için bu uygulama gayet avantajlıdır.

UI kullanarak Server Affinity ayarını yapmak için;

  IIS Manager’ i açın.
  Oluşturduğunuz server farma girin, karşınıza aşağıdaki gibi bir ekran gelecektir;



  Buradan Server Affinity’ e çift tıklayarak girin.
  Karşınıza aşağıdaki gibi bir pencere gelecektir. Burada Client Affinity seçeneğini aktif
edin.



ARR,  istemci  ile  ilişki kurabilmek  için bir  cookie  (çerez)  kullanır.  İstemcinin  bu
özellikten yararlanabilmesi için çerezleri aktif etmelidir.
  ARR sunucu ile istemci arasındaki ilişkinin doğru çalışıp çalışmadığını gözlemlemek
için  ARR  sunucuya  birkaç  istek  gönderebilirsiniz.    Bunu  gözlemlemek  için  ise
Monitoring  and  Managment  kısmına girerek sürekli yenilemeniz gerekmektedir ( F5
tuşu yardımı ile). Buradan kullanıcı isteklerinin nasıl dağıldığını görebilirsiniz.

Komut satırlarını kullanarak Server Affinity ayarını yapmak için;

  Komut satırını administrator olarak açın.
  Bilgisayarınızın Run kısmına girin ve %windir%\system32\inetsrv yazın.
  Client affinity seçeneğini aktif etmek için aşağııdaki komutları girin. 

  appcmd.exe set config  -section:webFarms
/[name='myServerFarm1'].applicationRequestRouting.affinity.useCookie:"T
rue"  /commit:apphost

4.Adım: Yeni Bağlantılara İzin Vermemek
Bir sunucu üzerinden yeni bağlantılara izin vermemek sever farm verimliliği ve güvenliliği
açısından önemli bir uygulamadır. İstemci ile sunucu arasında güvenli bir şekilde trafik
oluşması için ARR üzerinde yeni bağlantılara izin vermeme seçeneği mevcuttur. Yani yeni bir
istemci dosya istediğinde mevcut istemcileri etkilemez dosya transferi mevcut olan uygulama
sunucusundan aktarılır.

UI kullanarak yeni bağlantılara izin vermemek için;
  3. Adımdaki işlemleri yapmadıysanız tamamlayın.
  Oluşturduğunuz server  farma gelin. Karşınıza aşağıdaki gibi bir ekran gelecektir.



  Monitoring and Managment kısmına gelin ve çift tıklayın
  Buradan istemci ile ilişkisi olan sunucuyu seçin. Actions panelinden Disallowed New
Connections seçeneğini seçin. Karşınıza aşağıdaki gibi bir uyarı penceresi gelecektir.
Yes diyerek devam edin.



  Artık  sunucudaki  mevcut  istemci  istekleri  korunacak  ve  yeni  istekler  kabul
edilmeyecektir. Yanı sunucu üzerinden veri alan kullanıcı sayısı 200 ise yukarıdaki
işlemleri yaptıktan sonra kullanıcı sayısı 201 ve fazlası olamayacaktır. Bunu ISS
Manager’ i sürekli yenileyerek de görebilirsiniz.
  Kullanıcıların  ARR  sunuculara  yönlendirilmediğini  görmek  için.  ARR  sunucudan
çerezleri kaldırın ve tarayıcınızı yeniden başlatın. Daha sonra ARR sunucuya istekler
gönderin. ISS Manager’ i ise sürekli yenileyin. İstek sayısının sürekli sabit kaldığını
göreceksiniz.










4. APPLİCATION REQUEST ROUTING ÖZELLİĞİNİ KULLANARAK

3’LÜ TİER MİMARİSİNİ ŞEKİLLENDİRME



Bu  başlıkta ARR özelliğini kullanarak 3’lü tier mimarisinin temellendirilmesi  anlatılacaktır.
Aşağıda bu yapının şematik gösterimi verilmiştir.




İlk Gereksinimler ( Ön Koşullar)


  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  Minimum iki adet uygulama sunucusu ve üzerinde çalışan aktif web sitesi
  Statik içerikleri mevcut bir ARR sunucu
  Eğer yapılmamışsa 2. başlıkta anlatılan işlemlerin tamamının yapılması




1.Adım: URL Yeniden Yazma Ayarlarını Değiştirerek Statik İçerikleri Flitreleme

Bu kısımda URL yeniden yazma ayarlarının, belirli uzantılarla veya yollarla gelen isteklere
göre ARR sunucuda nasıl değiştirildiği anlatılacaktır.  Ayrıca URL yeniden yazma kurallarının
.jpeg veya .gif gibi görüntü uzantılarında nasıl değiştirildiği anlatılacaktır.
Statik istekler dosya uzantılarına bakılarak tespit edilebilir. Örneğin statik istekte .jpeg veya
.gif gibi uzantılar yer alıyorsa URL yazma kuralları URL üzerinde yeni bir  yol  arayabilir.
İstenilen  kaynak  eğer  .jpeg,  .gif,  veya  .css  uzantılı  ise  doğrudan  ARR  sunucuya  sevk
edilecektir. Benzer şekilde URL içeriği eğer resim dosyası içeriyorsa da ARR sunucu tarafından
sunulacaktır. Diğer tüm istekler ARR sunucunun arkasından kullanıcıya iletilir.  Aşağıdaki
işlemlere başlamadan önce ARR sunucunun çalıştığına emin olun.


UI kullanarak URL tekrar yazma kurallarını değiştirmek için;

  IIS Manager’ i açın,
  Oluşturduğunuz  server  farm  yapısına  girin.  Karşınıza  aşağıdaki  gibi  bir  pencere
çıkacaktır;



  Routing Rules kısmına çift tıklayarak girin. Requests with the following extensions
are not forwarded kısmına *.jpg ve *.css yazın.  Requests with the following
patterns are not forwarded kısmına ise */image/* yazın. 



  Statik görüntülerin ARR üzerinden doğru bir şekilde sunulduğunu anlamak için günlük
loglar takip edilmelidir.  Eğer hiçbir değişiklik yapılmadı ise loglar
C:\inetpub\logs\LogFiles\ klasörü içine kaydedilir. ARR sunucuların arkasında
uygulama sunucuları vardır ve bu sunucular image dosyaları gibi referans dosyaların
logarını almaması gerekir.

Komut Satırını kullanarak URL tekrar yazma kurallarını değiştirmek için;

  Komut satırını administrator olarak açın.
  Bilgisayarınızın Run kısmına %windir%\system32\inetsrv  yazın.
  Klasörün içine girin ve komut satırına;
 appcmd.exe  clear  configsection:system.webServer/rewrite/globalRules   yazarak
URL yeniden yazma ayarlarını temizleyin.
  Daha sonra komut satırına aşağıdaki komutları yazın;

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stop
Processing='True']" /commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopPr
ocessing='True'].match.url:"*"  /commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wil
dcard',stopProcessing='True'].conditions.[input='EXT_{URL}',negate='Tru
e',pattern='*.jpg']" /commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stop
Processing='True'].conditions.[input='EXT_{URL}',negate='True',pattern='*.c
ss']" /commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stop
Processing='True'].conditions.[input='{URL}',negate='True',pattern='*/imag
es/*']" /commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopPr
ocessing='True'].action.type:"Rewrite"/[name='ARR_myServerFarm_loadba
lance',patternSyntax='Wildcard',stopProcessing='True'].action.url:"http://m
yServerFarm1/{R:0}"  /commit:apphost


Artık 3’lü tier yapısı için gerekli olan temel URL yeniden yazma ayarlarını yapılandırmış olduk.
Ek olarak incelemek istediğiniz ARR özelliklerini üçüncü kısımda bulabilirsiniz.




















5. APPLICATION REQUEST ROUTING KULLANARAK PİLOT

PROGRAM YONETİMİ


Bu kısımda ARR yardımı ile pilot programların nasıl yönetildiğine değinilecektir. ARR belirli bir
kullanıcı grubunu pilot (ana) siteye yönlendirmek için veya pilot site üzerindeki trafiği
sınırlamak için kullanılabilir. Bu bölümde kullanıcı profiline göre özel isteklerin  pilot  siteye
nasıl yönlendirilebileceği üzerinde durulacaktır.

İlk Gereksinimler ( Ön Koşullar)


  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  Minimum dört adet üzerine web sitesi ve uygulamalar çalışan sunucu, iki tanesi kaynağın
yayınlanacağı sunucu diğer ikisi ise pilot site için kullanılacak.
  Herhangi bir internet tarayıcısının ve .NET 3.5’in kurulu olması.


1.Adım Kullanıcı Profiline Göre URL Yeniden Yazma Kurallarını Değiştirme

Bu kısımda bilgisayarında .NET 3.5 kurulu olan ve Internet Explorer kullanan kullanıcıların
pilot  siteye  yönlendirilmesi  için  gerekli  Yeniden  Yazma  Kurallarının  nasıl  değiştirilmesi
gerektiği açıklanacaktır.

UI kullanarak URL tekrar yazma kurallarını değiştirmek için;

  IIS Manager’ i açın,
  Oluşturduğunuz  server farm içerisine girin ( pilotSiteServers  isimli  bir  server  farm
oluşturduk varsayalım.). Karşımıza aşağıdaki gibi bir pencere çıkacaktır.



  Routing Rules içerisine girin.  Sol  tarafta  Actions  menüsünü göreceksiniz buradan
Advanced Routing kısmının altında URL Rewrite seçeneğine çift tıklayın.



  İki  adet  kuralın  oluşturulduğunu  göreceksiniz.  Bu  kuralların  değiştirilmesi
gerekmektedir.



  İki adet kural üstteki şekilde  de gözükmektedir.  ARR_pilotSite_Servers_loadbalance
kısmına gelin ve sol kısımdaki Actions  kısmından edit  seçeneğini seçin. Karşınıza
aşağıdaki gibi bir pencere çıkacaktır;




  .Net 3.5 ve IE özelliklerine sahip kullanıcıların yönlendirilmesinin yapılması için şartları
belirtmemiz  gerekmektedir.  Bunun  için  bir  önceki  seçenekte  karşınıza  çıkan
pencereden  Add  Conditions  butonuna  tıklayın.  Karşınıza  aşağıdaki  pencere
gelecektir;



  Condition  input  kısmına  {HTTP_USER_AGENT},  Check  if  input  string  kısmına
Matches the pattern ve Pattern kısmına ise *MSIE* bilgilerini girin.
  Eğer istemci IE kullanıyorsa bu durumdan faydalanacaktır.



  Sırada son bir işlem kaldı. Alt kısımda bulunan Stop  processing  of  subsequent  rules
kısmındaki işareti kaldırın ve Apply butonuna tıklayın;





Komut Satırlarını kullanarak URL tekrar yazma kurallarını değiştirmek için;

  Komut Satırını Administrator olarak açın,
  Bilgisayarınızı Run kısmına %windir%\system32\inetsrv yazın.
  Girdiğiniz klasörün içindeki appcmd.exe’ yi çalıştırın ve aşağıdaki komutları çalıştırın;


  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/+"[name='ARR_pilotSiteServers_loadbalance'].conditions.[input='{HTTP_US
ER_AGENT}',pattern='*MSIE*']" /commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/+"[name='ARR_pilotSiteServers_loadbalance'].conditions.[input='{HTTP_US
ER_AGENT}',pattern='*.NET CLR 3.5*']" /commit:apphost

  appcmd.exe set config  -section:system.webServer/rewrite/globalRules
/[name='ARR_pilotSiteServers_loadbalance'].stopProcessing:"False" 
/commit:apphost


Yukarıdaki işlemleri yaparak başarılı bie şekilde kullanıcıları pilot siteye yönlendirmiş oldunuz.
Bu  özellik,  ARR’  ın  getirdiği  önemli  yeniliklerden  biridir  ve  bir  çok  tier  yapısında
kullanılmaktadır.



6. APPLICATION REQUEST ROUTING ILE PAYLAŞIMLI HOSTING

DAĞITIMINA GENEL BAKIS


ARR’  ın  web  sunucuların  yönetimine,  sağlayıcı  sunucuların  barındırılmasına  (  yapılan
ayarlama içinde korunmasına), CDN’ lerdeki ölçeklenebilirlik ve güvenilirlik özelliklerinin
arttırılmasına,  bilgisayar  kullanıcısı  ile  sunucu  isimlerinin  ilişkilendirilmesine,  HTTP
sunucusundaki isteklerin yük dağılımının yapılmasına ve disklerdeki ön belliğin dağıtılmasına
izin veren bir IIS yazılımı olduğunu daha önceden belirtmiştik.
Bu kısımda Host Name Affinity olarak da bilinen özel bir host paylaşım yöntemi anlatılacaktır.
Ayrıca bu yöntemin kullanım kolaylığına ve kullanıldığında ne gibi faydalar sağlayacağına
değinilecektir.

1.Adım Ortak Paylaşımlı Hosting Dağıtımı

Aşağıdaki  diyagramda  tipik  bir  ortak  paylaşımlı  hosting  dağıtımının  nasıl  gerçekleştiği
görülmektedir;


Yukarıdaki  şekilde  numaralandırılmış  oklar  görülmektedir.  Bu  oklarla  hangi  işlemlerin
yapıldığını sırası ile inceleyelim;
1.  Kullanıcı www.site2.com sitesine istek gönderiyor.
2.  Kullanıcı bilgisayarı DNS’ ten www.site2.com adresini istiyor.
3.  DNS sunucu kullanıcı bilgisayarına www.site2.com sitesinin IP adresini gönderiyor.
4.  Tarayıcı www.site2.com sitesinin IP adresine istekte bulunuyor.
5.  Host adına bakılarak istek ilgili siteye yönlendiriliyor.
6.  www.site2.com cevabı kullanıcı bilgisayarına gönderiyor.


Ortak Paylaşımlı Hosting Dağıtımının dezavantajları;

1.  Siteler arasında ilişkilendirme yoktur.
2.  Yöneticiler,  sunucu  başına  site  giriş  –  çıkışını  belirleyen  bir  limit  koymak
zorundadırlar.
3.  Sunucuların kaynak kullanımı sunucular arasında eşit olarak dağıtılmaz.
4.  Yöneticiler çoklu konfigürasyon dosyalarını yönetmek zorundadır.


2. Adım ARR ile Paylaşımlı Hosting Dağıtımı

ARR’ ın Host Name Affinity ( Host Adı İlişkilendirme ) özelliği, sitelere gelen isteklerin nasıl
dağıtıldığını  belirleyemeye  yarayan  bir  yapı  içerir.  ARR  gelen  istekleri,  hosting  yapan
sunucuların durumuna göre ( CPU, RAM, vb. kaynakların kullanımını referans alarak)  o anda
uygun olan sunuculara aktarır. 
Aşağıda  bulunan  diyagramda  ARR  ile  Paylaşımlı  Hosting  Dağılımının  nasıl  gerçekleştiği
gösterilmiştir. Sırası ile bu aşamaları inceleyelim;
1.  Kullanıcı www.site2.com sitesine istek gönderiyor.
2.  Kullanıcı bilgisayarı DNS’ ten www.site2.com adresini istiyor.
3.  DNS sunucu kullanıcı bilgisayarına www.site2.com sitesinin IP adresini gönderiyor.
4.  Tarayıcı www.site2.com sitesinin IP adresine istekte bulunuyor.
5.  ARR sunucular üzerindeki yük dengesini inceler ve yapılandırma kuralına dayanarak
uygun sunucuyu belirler.
6.  İstek sunuculardan birine gönderilir.
7.  İstek dosya paylaşımı yapan sunucudan istenir.
8.  Alınan dosya ARR’ ın belirlediği sunucuya gönderilir.
9.  Bu dosya kullanıcı bilgisayarına gönderilir.


ARR ile Paylaşımlı Hosting Dağıtımının avantajları;

1.  İstekler ARR’ ın bu özelliği sayesinde dengeli bir şekilde dağılır ve dengeli bir yük
paylaşımı gerçekleşir.
2.  Yöneticiler yük dengesini daha verimli hale getirmek için sunucular ekleyebilir ve
eklenen her sunucu için ayrı bir konfigürasyon tanımlamasına gerek kalmaz (Ortak
konfigürasyon).
3.  Sunucu kaynakları daha eşit kullanılır.
4.  Siteler daha yüksek performansta hizmet verir.
5.  Sunucular  tek  bir  sunucu  üzerinden  kontrol  edilebilir  (Ortak  konfigürasyon
sayesinde).

ARR’ ın getirdiği bu özellik sayesinde yöneticiler birden çok siteyi daha kolay yönetebilmekte
ve istemcilere daha iyi hizmet sağlayabilmektedir. Ayrıca yük dağılımı dengelemek için
kolayca  sunucu  veya  sunucular  ekleyebilmektedir.  Bu  özellik  ARR  1.0  ‘  dan  beri
bulunmaktadır.


7. APPLICATION REQUEST ROUTING ILE PAYLAŞIMLI HOSTING


Bir  önceki  başlıkta  incelediğimiz  paylaşımlı  hosting  dağıtımı  ile  benzer  bir  konu  olan
paylaşımlı  hosting  kısmında  ARR  üzerindeki  Host  Name  Affinity  özelliğinin  nasıl
yapılandırıldığı anlatılacaktır.



İlk Gereksinimler ( Ön Koşullar)


  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  Üzerinde sitelerin ve uygulamaların çalıştığı minimum iki adet sunucu

-  Bu sunucular ortak paylaşımda çalışacak şekilde yapılandırılmış olmalıdır.
-  Bu sunucular üzerinde çalışan siteler Host Name Binding (Host Adı Bağlayıcısı)
kullanarak oluşturulmalıdır.



1. Adım Host Name Affinity Özelliğini Kullanmak

Host Name Affinity özelliğini yapılandırmadan önce uygulama sunucuların ortak paylaşımda
olduğuna ve bu uygulama sunucuları üzerinde çalışan sitelerin Host Name Binding ile
oluşturulduğuna emin olunuz.
Host Name Affinity özelliğini iki şekilde yapılandırabiliriz;
UI kullanarak Host Name Affinity özelliğini yapılandırmak için;
-  IIS Manager’ i çalıştırın.
-  Önceden oluşturduğunuz server farma çift tıklayın. Karşınıza aşağıdaki gibi bir
arayüz penceresi gelecektir;



-  Buradan Server Affinity simgesine çift tıklayın.
-  Karşınıza gelen arayüz penceresinden Use host name (Host adını kullan  )  yazan
seçeneğin başındaki kutucuğu işaretleyip Apply (Uygula)butonuna tıklayın.





Yukarıdaki resimde Host name affinity provider seçeneğinin altında;
-  Microsoft.Web.Arr.HostNameRoundRobin
-  Microsoft.Web.Arr.HostNameMemory 
olarak iki adet seçenek bulunmaktadır. Bu sağlayıcıların ne işe yaradığını kısaca açıklayalım.

  Microsoft.Web.Arr.HostNameRoundRobin:  Bu  yöntem  ile  sunucu,  gelen  Host
isteklerini arka taraftaki uygulama sunucularına sırası ile gönderilir. Arka taraftaki
sunucular üzerine gönderilen istekleri sırası ile ve eşit olarak dağıtır. 

  Microsoft.Web.Arr.HostNameMemory: Bu yöntem ile sunucu, gelen Host isteklerini
arka taraftaki sunucuların kullandıkları RAM oranı ve performansına göre gönderir.
Yani o an performansı en iyi olan sunucuya istekler iletilir.
Ayrıca yukarıdaki pencerede Time-out (minutes) seçeneği bulunmaktadır. Buradan sunucuya
gelen en son host isteğine, ne kadar süre sonra cevap verilemezse isteğin sıfırlanacağını
belirten süre dakika cinsinden girilir. Varsayılan olarak 20’ ye ayarlıdır. Bu süreyi ayarlarken
dikkat edilecek en önemli nokta, bu sürenin uygulama sunucusundaki uygulama havuzu
time-out süresi ile aynı değerde girilmesidir.
Bu özelliğin çalıştığını doğrulamak için yukarıdaki pencerede bulunan Display Routing Table
(Yönlendirme Tablosunu Görüntüle) butonuna tıklayın.



Açılan penceredeki arama kısmına host adını yazıp Lookup by host name seçeneğine tıklayın. 
Aşağıdaki kısımda host adının ilişkilendirildiği sunucu adresi görüntülenecektir.


Komut Satırını kullanarak Host Name Affinity özelliğini yapılandırmak için;
-  Komut satırını Administrator olarak çalıştırın.
-  Bilgisayarınızdan Çalıştır’ a %windir%\system32\inetsrv yazın.
-  Host Name Affinity özelliğine izin vermek için aşağıdaki komutları açılan komut
satırına  girin  (myServerFarm  kısmına  oluşturduğunuzun  server  farmın  adını
yazın.)

  appcmd.exe set config  -section:webFarms
/[name='myServerFarm'].applicationRequestRouting.affinity.useHostNa
me:"True"  /commit:apphost


2. Adım Host Adlarına göre uygulama sunucusu sayısı belirlemek
Varsayılan olarak Host adları bir uygulama sunucusunu kullanırlar. Fakat yöneticiler isterse
host adlarına göre uygulama sunucusu sayısını belirtebilirler. Host Adlarına göre uygulama
sunucusu sayısı belirlemek iki şekilde yapılır;

UI kullanarak Host Adlarına göre uygulama sunucusu sayısı belirlemek için;
-  Server Affinity seçeneğine çift tıklayın. Daha sonra Advanced Settings ayarlarına
çift tıklayın. Karşınıza aşağıdaki gibi bir pencere gelecektir;



-  Host Name kısmına host adını yazın. Bu kısmı doldurmak gereklidir.
-  Number  of  Allocated  Servers  column  kısmına ise bu host adı için kaç adet
uygulama sunucusunun kullanılacağının sayısını girin.
-  Alternate Host Name kısmına ise isteğe bağlı olarak kullanılır. Genelde iki veya
daha fazla DNS sunucusu bulunan sistemler üzerinde tanımlanır.
-  Ayarları kaydetmek için Ok butonuna tıklayın.
-  Yapılandırmanın çalışıp çalışmadığını kontrol etmek için Display  Routing  Table’ ı
açın.  Arama kısmına Host adını yazıp Lookup by host name seçeneğine tıklayın. O
hoşta kaç sunucu atandığı görüntülenecektir.

Komut Satırını kullanarak Host Name Affinity özelliğini yapılandırmak için;
-  Komut satırını Administrator olarak çalıştırın.
-  Bilgisayarınızdan Çalıştır’ a %windir%\system32\inetsrv yazın.
-  Host Name Affinity özelliğine izin vermek için aşağıdaki komutları açılan komut
satırına  girin  (myServerFarm  kısmına  oluşturduğunuzun  server  farmın  adını
yazın.)

  appcmd.exe set config  -section:webFarms
/+"[name='myServerFarm'].applicationRequestRouting.affinity.[name='
www.contoso.com',servers='2']" /commit:apphost


8. APPLICATION REQUEST ROUTING ILE BAŞARISIZ İSTEKLERİ

İZLEME KURALLARI 


Failed Request Tracing Rules (Başarısız İstekleri İzleme Kuralları) IIS 7 ile beraber gelen güçlü
bir hata giderme aracıdır. Bu kısımda başarısız  uygulama derlemelerinin Başarısız İstekleri
İzleme Kuralları ile nasıl giderileceğinden bahsedilmektedir.

İlk Gereksinimler ( Ön Koşullar)

  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  Üzerinde sitelerin ve uygulamaların çalıştığı minimum iki adet sunucu
  IIS 7’nin tracing özelliğinin kurulu olması


1. Adım Başarısız İstekleri İzleme Kurallarının yapılandırılması

Yapılandırma iki şekilde yapılabilir:

UI kullanarak Başarısız İstekleri İzleme Kurallarının yapılandırılmak için;

-  IIS Manager’ i çalıştırın.
-  Default Web Site’ ye bir defa tıklayın.
-  Sağda bulunan Eylemler (Actions) penceresinin altında bulunan Ayarlar (Configure)
seçeneğinin altındaki Failed Request Tracing Rules seçeneğine tıklayın.
-  Edit Web Site Failed Request Tracing Settings başlığına sahip bir karşılama penceresi
ile karşılaşacaksınız. Enable yazan seneğin başındaki kutucuğu işaretleyin.




-  OK butonuna  tıklayarak ayarları  kaydedin. Daha  sonra Default web siteye  çift
tıklayın.  Karşınıza  gelen  simgelere  Failed  Request  Tracing  Rules  seçeneğinin
eklendiğini göreceksiniz.  Sağ tarafta bulunan Actions panelinin altında bulunan Add
seçeneğine tıklayın. Karşınıza aşağıdaki gibi bir pencere gelecektir.



-  All content (*) seçeneğini seçin ve Next butonuna tıkayın.
-  Karşınıza gelen yeni pencereden ise Status code(s) seçeneğini seçin ve 200-399
değerlerini girin.



-  İzleme 200-399 arasındaki status kodlara sahip hatalar için yapılacaktır. Next
butonuna tıklayarak devam edin. Karşınıza çıkan pencereden sağlayıcı olarak
www Server, Areas olarak da Rewrite ve Request Routing’ i seçin.



-  Finish butonuna tıklayarak yapılandırmayı bitirin.
Komut Satırını kullanarak Başarısız İstekleri İzleme Kurallarının yapılandırılmak için;
-  Komut satırını Administrator olarak çalıştırın.
-  Bilgisayarınızdan Çalıştır’ a %windir%\system32\inetsrv yazın.
-  Failed Request Tracing Rules (Başarısız İstek İzleme Kuralları) özelliğini aktif etmek
için komut satırına;

  appcmd set site "Default Web Site" -traceFailedRequestsLogging.enabled:"true" /commit:apphost.

komutunu girin.
-  Failed  Request  Tracing  Rules  (Başarısız  İstek  İzleme  Kuralları)  özelliğini
yapılandırmak için ise komut satırına;

  appcmd.exe set config "Default Web Site"
section:system.webServer/tracing/traceFailedRequests /+"[path='*']"
  appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests
/+"[path='*'].traceAreas.[provider='WWW
Server',areas='Rewrite,RequestRouting',verbosity='Verbose']"
  appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests
/[path='*'].failureDefinitions.statusCodes:"200-399" 

komutlarını sırası ile girin.


2. Adım Başarısız İstekleri İzleme Kayıtlarının İncelenmesi

Bu kısımda ARR’ a istek gönderip buradan Başarısız İsteklerin kayıtlarını inceleyeceğiz. Bu
işlemleri sırası ile maddeler halinde açıklayalım;
-  Başarısız isteklerin kayıtlarının tutulduğu dizine gidin. Bu kayıtlar varsayılan olarak
%SystemDrive%\inetpub\Logs\FailedReqLogFiles\  dosyasında tutulur.  İsterseniz
bu uzantının yerini değiştirebilirsiniz. Bu tamamen sizin seçiminize kalmış. 
-  Bilgisayarınızdan tarayıcınızı açın ve adres  kısmına  hatalı bir  istek gönderin.
Örneğin bu istek http://localhost/ddl.html  olabilir. Tarayıcınızda bir hata sayfası
ile karşılaşacaksınız. Bu hata sayfası gönderildiği anda yukarıdaki belirtilen dosya
dizininin içinde fr000001.xml isimli bir kayıt oluşturulur.
-  Tarayıcınıza %SystemDrive%\inetpub\Logs\FailedReqLogFiles\fr000001.xml yazın
ve enter tuşuna basın. Karşınıza aşağıdaki şekilde bir sayfa gelecektir. Buradan
hataları inceleyebiliriz.



-  Buradan  kaydedilen  başlıkları  inceleyebilir  hatanın  hangi  sebepten  dolayı
oluştuğunu  ve  IIS’  iniz  bu  hatalara  karşı  nasıl  bir  davranış  sergilediğini
öğrenebilirsiniz.










9. APPLICATION REQUEST ROUTING ÜZERİNDEN DİSK CAHE

YAPILANDIRILMASI


Bu kısımda ARR ile beraber gelen cache özelliği incelenecektir. Özellikle medya ortamlarında
tercih edilen bu cache yapabilme özelliği ile sunucular üzerinde veriler belirtilen süre
boyunca kaydedilebilmekte veya silinebilmektedir. 


İlk Gereksinimler ( Ön Koşullar)


  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  ARR üzerinden sunucu gruplarının yapılandırılması,
  ARR üzerinden LB özelliğinin yapılandırılması,
  Gerekli Tier yapılarının oluşturulması,



1. Adım Birincil Disk İçin Cache Özelliğinin Yapılandırılması


Bu  kısımda  sadece  UI  üzerinden  cache  yapılandırılması  anlatılacaktır.  Maddeler  halinde
yapılandırmayı anlatmaya başlayalım;

-  IIS Manager’ i çalıştırın,
-  Connections kısmından sunucu adının yazılı olduğu seçeneğe tıklayın. Arayüzdeki
simgelerden Application Request Routing Cache simgesine tıklayın,



-  Actions panelinin altında bulunan Drive Managment \ Add seçeneğine tıklayın,



-  Add Drive başlıklı bir pencere ile karşılaşacaksınız. Buradan Drive location kısmına
verilerin Cache edileceği hlasör yolu veya disk yolu gösterilmelidir. Altta bulunan
Limit  maximum  size  in  GB  to  kısmına ise diskin ne kadar kısmına cache bilgisi
yazılacağını girebilirsiniz. Eğer  bir  veri girilmez ise  diskin tamamı  cache  için
kullanılır.




-  OK butonuna tıklayarak işlemi tamamlayalım. Burada dikkat edilecek konulardan
biri de bu dosyanın içeriğine ulaşmak için yerel kullanıcılara okuma, dosya içeriğini
görüntüleme ve yazma izinlerinin verilmiş olması gerekliliğidir. 




-  Yukarıdaki şekilde görüldüğü üzeri bir cache diski belirlenmiş ve içerisinde cache
isimli bir klasör oluşturulmuş ve cache dosyasının maksimum boyutu 10 GB olarak
belirlenmiştir.

2. Adım İkincil Disk İçin Cache Özelliğinin Yapılandırılması

İkincil  disk,  birincil  disklerin  herhangi  birinin  bozulması,  çalışmaması  gibi  istenmeyen
durumlarda  devreye girerek o dikteki verileri kullanıcılara iletilmesini ve verilerin üzerine
yazılmasını sağlar. Dolayısı ile ikincil diskin üzerine yazılan verinin toplam boyutu birincil
disklerdeki verilerin toplamı kadardır.
Bu  kısımda  sadece  UI  üzerinden  cache  yapılandırılması  anlatılacaktır.  Maddeler  halinde
yapılandırmayı anlatmaya başlayalım;

-  IIS Manager’ i çalıştırın,
-  Connections  kısmından sunucu adının yazılı olduğu seçeneğe tıklayın. Arayüzdeki
simgelerden Application Request Routing Cache simgesine tıklayın,




-  Actions panelinin altında bulunan Drive  Managment  \  Add  Secondary  seçeneğine
tıklayın,



-  Karşınıza Add Secondary Drive başlıklı bir pencere gelecektir. Buradan cache
yapılacak ikincil diskin yolunun belirterek OK butonuna tıklayın.



-  Application  Request  Routing Cache arayüzünde ikincil bir diskin oluşturulduğunu
göreceksiniz. Dikkat ederseniz Priority kısmında disklerin türü yazmaktadır.




3. Adım Disk Cache Özelliğine İzin Vermek

Diskleri yapılandırdıktan sonra bu disklere verilerin yazılabilmesi için cache özelliğini aktif
etmek gerekmektedir. Cache özelliğini aktif etmek için yapılması gerekenleri maddeler
halinde açıklayalım;
-  IIS Manager’ i çalıştırın.
-  Oluşturduğunuz Server Farm üzerine gelip tıklayın.
-  Karşınıza gelen arayüz penceresinden Caching simgesine tıklayın





-  Enable disk cache yazan seçeneğin başındaki kutucuğu işaretleyin. 




-  Apply seçeneğine tıklayarak ayarlarınızı kaydedin. Artık veriler belirttiğiniz disklere
cache edilecektir.


4. Adım Cache Özelliğinin Çalıştığını Komut Satırından Doğrulamak

Varsayılan olarak Kernel çekirdek yapısından dolayı http.sys dosyaları maksimum 256 Kb
boyutunda  diske  yazar.  ARR  üzerinde  çalışan  cache  özelliğinin  çalışıp  çalışmadığını
doğrulamak için Komut penceresini Administrator olarak çalıştırın ve komut satırına;
“netsh http show cache”   
 Komutunu yazın. Karşınıza aşağıdaki gibi bir pencere gelirse cache özelliği çalışıyor demektir.



5. Adım Cache Özelliğinin Çalıştığını IIS Manager Arayüzünden Doğrulamak

-  IIS Manager’ i çalıştırın.
-  Oluşturduğunuz server farma gelip tıklayın.





-  Kaşınıza  gelen  arayüzden    Monitoring  and Managment  simgesine  tıklayarak
arayüzüne  ulaşın.  Alt  kısımda  bulunan Disk  Cache  Statistics  kısmında  cache
disklerin kullanım oranlarını görebilirsiniz ve disklerin cache yapıp yapmadığını
doğrulayabilirsiniz. 



  






10. CACHE ARRAY ROUTING PROTOCOL ÖZELLİĞİ

 
Bu  kısımda  Cache  Dizinlerini  Yönlendirme  Protokolü  (Cache  Array  Routing  Protocol  -
CARP)kullanılarak ARR ile uç birimlerdeki sunucular üzerindeki cache mantığı anlatılacaktır. 
ARR 1.0 yapısında sunucular mantıksal bir grup gibi çalışıyordu. Yani ARR gelen istekleri
server  farmdaki  sunuculara  gönderdiğinde  bu  sunucular  uygulama  sunucusu  gibi
davranıyordu. ARR 2.0 ile tier mantığı geliştirilmiş ve gelen isteklerin  kademeli  olarak  tier
sunucuların cache disklerinden karşılanması sağlanmıştır.
Aşağıdaki şekilde yukarıda bahsedilen cache sisteminin yapısı görülmektedir;



Cache yapısının yönetimi, paylaşımlı konfigürasyon kullanılarak daha da kolaylaştırılabilir.
Yukarıdaki şekilde görüldüğü üzere Parent Caching ve Edge Caching olmak üzere iki farklı yapı
vardır. Bu da iki farklı paylaşımlı konfigürasyon yapılması demektir. 
Bu  kısımda  Cache  Array  Routing  Protocol’  ün  yanı  sıra  bu  iki  farklı  yapının  nasıl
yapılandırıldığı üzerinde de durulacaktır.


İlk Gereksinimler ( Ön Koşullar)


  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  ARR üzerinden sunucu gruplarının yapılandırılması,
  ARR üzerinden LB özelliğinin yapılandırılması,
  Gerekli Tier yapılarının oluşturulması,
  Paylaşımlı konfigürasyon oluşturulması



Cache Yapısını Tanımlama


Bu kısımda sadece UI üzerinden cache yapılandırılması anlatılacaktır. Maddeler halinde bu
yapılandırmanın nasıl yapıldığını anlatalım;
-  IIS Manager’ i çalıştırın.
-  İlk olarak bir Server Farm oluşturalım. Sunucu isminin yazılı olduğu sekmeye gelip
tıklayın.




-  Server Farm seçeneğinin üzerine gelip farenizin sağına tıklayarak Create a Server
Farm seçeneğine tıklayın.





-  Oluşturacağınız  server  farmın  adını  girin.  Altında  bulunan  Online  seçeneğinin
başındaki kutucuğun işaretli olmasına dikkat edin.
-  


-  Next  butonuna  tıklayarak  işleminize  devam  edin.  Karşınıza  gelen  arayüz
penceresinden server farmınıza eklemek istediğiniz sunucuların IP adreslerini
girin. Tek bir network kartı üzerinden haberleşme sağlanıyor ise sunucuların
domain adları da girilebilir.



  
-  Finish butonuna tıklayarak işleminizi tamamlayın. Finish butonuna tıkladığınızda
URL  Rewrite  ile  ilgili  bir  uyarı  penceresi  karşınıza  gelecektir.  İsterseniz  Yes
butonuna tıklayarak URL Rewrite’ ı otomatik oluşturabilir veya No butonuna
tıklayarak manuel olarak elle yapılandırabilirsiniz.
-  Server farmı oluşturduktan sonra oluşturduğunuz server farmın üzerine gelip bir
kez tıklayın. Aşağıdaki gibi bir arayüz penceresi karşınıza gelecektir;




-  Load Balance yazan simgeye çift tıklayarak arayüzüne ulaşın.
-  Load balance algorithm kısmını Request hash olarak ayarlayın ve Apply sekmesine
tıklayarak ayarlarınızı kaydedin.

Request hash tekniği ARR 2.0’ da CARP protokolünü kullanır. Bu protokolü kullanabilmeniz
için Load balance algorithm kısmını Request hash olarak ayarlamanız gerekmektedir.













11.  CDNLER ÜZERİNDE APPLICATION REQUEST ROUTING

YAPILANDIRMASI


Content Delivery Network ( CDN) yapılarında, içerik farklı bölgelerde bulunan serverlara
gönderilir ve bir kullanıcı bir içeriğe erişmek istediği zaman, content routerlar tarafından
kendisine en yakın bu contente sahip olan content engine'e yönlendirilir.  Bu  kısımda da bu
CDN yapıları üzerindeki ARR yapılandırılması açıklanacaktır.
Aşağıda CDN yapısına sahip bir sistem yapısı görülmektedir. Burada Orgin, Parent ve child
olmak üzere üç farklı yapı görülmektedir. Yönetimin kolaylığı açısından bu üç farklı yapı üç
farklı için ortak konfigürasyon yapısı kullanılabilir.




Yukarıdaki şekilde şu şekilde yapılandırma mevcuttur;
-  Kullanıcı isteği ilk olarak Child Nodes sunucuların birinin üzerinden veri isteğinde
bulunur. Eğer istenilen veri bu sunucuda var ise istemciye gönderir. Eğer bu bilgi
bu sunucu üzerinde yoksa üzerinde yazılan URL Rewrite kuralına göre Load
Balance yöntemini de dikkate alarak arkadaki Parent Nodes yapılan sunucuların
birinin üzerinden ister.
-  Eğer kullanıcın istediği veri Child Nodes üzerindeki URL Rewrite modülü üzerinden
engellenmiş ise bu veri Parent Nodes sunucular üzerinden istenilmez.
-  Parent Nodes sunuculardan herhangi birinin üzerine düşen bu istek eğer bu
sunucu üzerinden varsa isteği gönderen Child Nodes sunucusuna veriyi gönderir.
Yoksa üzerindeki URL Rewrite kuralına göre isteği Orgin Server üzerine gönderir.
-  İstenilen  veri  Parent  Nodes  Child  Nodes  yolunu  takip  ederek  istemciye
gönderilir.


İlk Gereksinimler ( Ön Koşullar)

  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  Yukarıdaki gibi bir yapının bağlantılarının oluşturulması,
  ARR üzerinden LB özelliğinin yapılandırılması,



1. Adım Child Node URL Rewrite kurallarının oluşturulması

-  Sunuculardaki  cache  yapılandırmasını  oluşturmak  için  9  ve  10  kısımlardaki
işlemleri uygulayınız.
-  URL  Rewrite  kuralarını,  server  farmınızı  oluşturduğunuzda  otomatik  olarak
oluşturabileceğinizi söylemiştik. Bu durumda %windir%\system32\inetsrv\config\
dosyası  içinde  URL  Rewrite  kuralları  ile  ilgili  aşağıdaki  gibi  bir  kod  yapısı
oluşturulur;

rewrite>
 <globalRules>
    <rule name="ARR_myParentCacheNodes_loadbalance" patternSyntax="Wildcard"
stopProcessing="true">
    <match url="*" />
         <action type="Rewrite" url="http://myParentCacheNodes/{R:0}" />
      </rule>
   </globalRules>
</rewrite>

-  Yukarıdaki gibi bir URL yapılandırılması CDN/ECN yapıları için yeterli değildir
çünkü  cache  sistemi  katmanlı  bir  yapıya  sahiptir.  Bir  sonraki  sunucu  yapısı
(örneğin  Parent  Nodes  yapısı)  istenilen  verinin  Orgin  Server’  da  nerede
tutulduğunu bilmez daha doğrusu Orjin Server diye tabir edilen yapıdan haberi
bile yoktur.
-  Child Node yapısına gelen isteğin Orjin Sunucularda sorgulanmasını sağlamak için
iki farklı yöntem vardır. Bunlar;

  CDN tarafındaki sunucular için bir alt – etki alanı oluşturulur. Bu durumda
sunucular benzer IP adresleri ile iletişim kurması gerekir.
  Diğer yöntem ise şimdi bahsedeceğimiz olan URL tanımlaması ile Orjin
Server’ a ulaşma yöntemidir.

-  Birinci  yöntem bu yapılandırmalarda pek kullanılmaz. Bunun nedeni fazladan bir
etki alanı oluşturulması gerekliliğidir.
-  URL  Rewrite  kurallarını  tanımlamak  için  Child  Node  yapısındaki  sunucunun
üzerinden IIS Manager’ ı çalıştırın.
-  Sunucu ismine gelip tıklayın.


-  Karşınıza gelen arayüz penceresinden URL Rewrite simgesine tıklayın. Daha sonra
açılan URL Rewrite arayüzünden sağdaki Actions panelinin altında bulunan View
Rewrite Maps tıklayın.



-  Açılan yeni arayüz penceresinden sağdaki Actions panelinin altında bulunan  Add
Rewrite Maps seçeneğine tıklayın.



-  Karşınıza gelen Add  URL  rewrite  penceresine oluşturacağınız URL kuralının adını
yazın.



-  OK butonuna tıkladığınızda Actions panelinin altında Add  Mapping  Entry… isimli
yeni bir seçenek oluşturulacaktır. Bu sekmeye çift tıklayalım.



-  Karşınıza gelen arayüz penceresinde iki adet seçenek bulunmaktadır. Burada
Original value kısmına yönlendirilecek isteğin URL adresi girilir. New value kısmına
ise bu adresin yönlendirileceği URL adresi girilir. Add  Mapping  Entry  kısmını
yapılandırmak isteğe bağlıdır. Eğer URL adresine göre yönlendirme yapılmak
isteniyorsa buradan yapılandırma yapılabilir.

-  Yine Actions panelinin altında Edit Rewrite Map seçeneği vardır. Bu sekmeye
tıklayarak arayüzüne ulaşalım. URL Rewrite  modülü  kara  listeye  alınmış IP
adreslerini bilmez. Eğer “Default value of use when key is not found in the map”
seçeneğine # işareti girilirse kara listede olan IP adresleri için URL Rewrite kuralları
oluşturulmaz.





-  Tekrar IIS Manager arayüzü yardımı ile URL Rewrite simgesine tıklayın. Karşınıza
gelen pencerede Name kısmının altına ARR_URLRewriteAdı_Loadbalance adında
bir URL Rewrite kuralı oluşturulduğunu göreceksiniz.





-  Sağ  tarafta  bulunan  Actions  panelinin  altında  bulunan  Conditions    Add
seçeneğine tıklayın.
-  Yukarıdaki kısımlarda oluşturduğumuz URL Rewrite kuralına bu kısımda koşul
eklenebilir.  Condition  input  kısmına yönlendirme şartını, Check  if  input  string
kısmına  karşılaştırma  yöntemini  Pattern  Kısmına  ise  hangi  verilerin
gönderileceğini girmeniz gerekmektedir. 



-  Ayrıca hangi isteklerin geçirilmeyeceğini de aynı şekilde belirleyebilirsiniz.




-  IIS  Manager  arayüzünden  URL  Rewrite  simgesine  girin.  Buradan
ARR_URLRewriteAdı_Loadbalance kuralına giriş yapın. Conditions kısmının altında
bulunan  “Track  capture  groups  across  conditions”  seçeneğinin  başındaki
kutucuğu işaretleyin. 
-  Server Variables kısmına tıklayarak koşulların oluşturulup oluşturulmadığına göz
atın.  Eğer  listede  oluşturduğun  kurallar  yoksa  Add  butonuna  tıklayarak
kurallarınızı tekrar ekleyin. Giriş işlemini bitirdikten sonra OK butonuna tıklayarak
ayarlarınızı kaydedin.
-  Ardından  Actions  panelinin  altındaki  Apply  butonuna  tıklayarak  ayarlarınızı
kaydedin.





-  Yapılandırmanızı kontrol etmek için %windir%\system32\inetsrv\config\  yolunu
izleyerek  konfigürasyon  dosyasına  ulaşın. Konfigürasyon dosyasını açtığınızda
aşağıdaki komutlarla URL Rewrite kurallarının oluşturulduğunu göreceksiniz;

<rewrite>
   <globalRules>
      <rule name="ARR_myParentCacheNodes_loadbalance" patternSyntax="Wildcard"
stopProcessing="true">
         <match url="*" />
         <conditions trackAllCaptures="true">
            <add input="{OrigServers:{HTTP_HOST}}" pattern="*" />
            <add input="{C:1}" negate="true"  pattern="#" />
         </conditions>
         <serverVariables>
            <set name="HTTP_HOST" value="{C:1}" replace="true" />
         </serverVariables>
         <action type="Rewrite" url="http://myParentCacheNodes/{R:0}" />
      </rule>
   </globalRules>

-  Ayrıca belli istekler bir sayfa koduna yönlendirilebilir. Aşağıda “Not my customer”
isimli  bir  kural  oluşturulmuştur.  Bu  yönlendirme  ile  sitede  belirlenmiş
kullanıcıların yaptığı bazı istekler için web sunucu istemciye 400 kodlu sayfayı
gönderir.
-  Bunu için IIS Manager’ i çalıştırın. Ardından Sunucu ismine tıklayın.



-  Buradan URL Rewrite simgesine tıklayarak URL Rewrite arayüzüne ulaşın. Sağ
taraftaki Actions panelinin altındaki Add Rule(s) seçeneğine tıklayın.



-  Gelen arayüz penceresinden Blank Rule seçeneğini seçin.



-  Gelen  pencerede  kuralları  oluşturduktan  sonra  Ok  butonuna  tıklayarak
oluşturduğunuz kuralları kaydedin.
-  Dikkat ederseniz üst kısımlarda oluşturduğumuz URL Rewrite kuralını da aynı
arayüzden  yapılandırmıştık.  Buradan  URL  Rewrite  kurallarını  bu  şekilde
oluşturabileceğini de görmüş olduk. Dikkat ederseniz Actions    Action  Type
kısmı “Custom Response” olarak seçilmiştir. 
-  Sağ taraftaki Apply butonuna tıklayarak yapılandırmanızı kaydedin.




-  Önceki oluşturduğunuz URL Rewrite kuralının altında yeni bir kural oluştuğunu
göreceksiniz. 



-  Böylece Child node tarafındaki URL Rewrite yapılandırmasını tamamlamış olduk. 

2. Adım Parent Node URL Rewrite kurallarının oluşturulması

Parent Node URL Rewrite kurallarını oluşturmadan önce bu sunucular üzerinde Proxy
ayarlarının yapılması ve Proxy’ e izin verilmesi gerekir. İlk önce Proxy yapılandırmasını
açıklayalım;
-  IIS Manager’ i çalıştırın. Sunucu ismine, ardından Applicaiton Request Routing
simgesine tıklayın.



-  Actions panelinin altındaki Server Proxy Setting simgesine tıklayın. 



-  Karşınıza  gelen  arayüz  penceresinden  Enable  proxy  seçeneğinin  başındaki
kutucuğu işaretleyerek proxy özelliğini aktif edin.
-  Apply seçeneğine tıklayarak yapılandırmalarınızı kaydedin.
-  Şimdi URL Rewrite kurallarını oluşturalım. Bunun için sunucu ismine  tıklayarak
URL Rewrite simgesine tıklayın.



-  Gelen arayüz penceresinden sağ taraftaki Actions panelinin altındaki Add Role(s)
seçeneğine tıklayın. Buradan Blank rule seçeneğini seçin.





-  Aşağıdaki parametreleri gelen arayüz penceresine girin;

Name: Forward proxy
Using: Wildcards
Pattern: *
Conditions:
   Input: {HTTP_HOST}
   Type: Matches the pattern
   Pattern: *
Action Type: Rewrite
Rewrite URL: http://{C:1}/{R:0}

-  Parrent  Node kısmındaki URL Rewrite kurallarını  da bu şekilde yapılandırmış
olduk. Bu yapılandırmalar yapılırken paylaşılan konfigürasyonun kullanılması daha
faydalı olacaktır.
-  Siz  istediğiniz  yönlendirme  ayarlarını  yapabilir  istediğiniz  parametreleri
kullanabilirsiniz. 
-  Ayrıca  URL  Rewrite  yapılandırması  yapılırken  Cache  konfigürasyonunun  da
yapılandırılması gerekir.
























12. APPLICATION REQUEST ROUTING İLE CACHE DOSYALARININ

GÖRÜNTÜLENMESİ


Bu kısımda cache  özelliği aktif edilerek diske yazılan dosyaların IIS Manager arayüzünden
görüntülenmesini inceleyeceğiz.

İlk Gereksinimler ( Ön Koşullar)

  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  ARR cache özelliğinin yapılandırılması


1. Adım Diskteki Cache Dosyalarının Görüntülenmesi

-  IIS Manager’ i çalıştırın.
-  Sunucu ismine gelip tıklayın.



-   Application  Request  Routing  Cache  simgesine çift tıklayarak cache arayüzüne
ulaşın.
-  Actions panelinin altındaki Browse Content sekmesine tıklayın.
-  Cache Content başlıklı bir arayüz penceresi karşınıza gelecektir. Buradan seçtiğiniz
diske ait cache dosyalarını görüntüleyebilirsiniz.


-  Burada dikkat edilecek nokta sadece seçili diskin cache içeriği görüntülenebilir. 
Bunun  için  cache  diskinin  üzerine  gelip  sağa  tıklayarak  Browse  Content
seçeneğine tıklanabilir.


2. Adım Cache Disklerinin İçeriğindeki Dosyaların Silinmesi

-  IIS Manager’ i çalıştırın.
-  Sunucu ismine gelip tıklayın.



-   Application  Request  Routing  Cache  simgesine çift tıklayarak cache arayüzüne
ulaşın.
-  Actions panelinin altındaki Browse Content sekmesine tıklayın. 
-  Silmek istediğiniz dosyayı seçin. Ardından sağ tarafta bulunan Actions  panelinin
altındaki  Delete Selected Cached Object seçeneğine tıklayın.



-  Karşınıza gelen sorgu penceresinde Yes butonuna tıklayın.
-  Seçmiş olduğunuz cache dosyası silinecektir.





13.  APPLICATION REQUEST ROUTING KULLANILARAK DİSK

NESNELERİNİN SİLİNMESİ


Bu  kısımda  cache  disklerinde  tutulan  farklı  türdeki  cache  dosyalarının  silinmesini
inceleyeceğiz.

İlk Gereksinimler ( Ön Koşullar)

  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  ARR cache özelliğinin yapılandırılması


Tüm Cache Nesnelerinin Silinmesi
Cache diskindeki tüm cache nesnelerinin silmek için;
-  IIS Manager’ i çalıştırın.
-  Sunucu ismine gelip tıklayın.



-   Application  Request  Routing  Cache  simgesine çift tıklayarak cache arayüzüne
ulaşın.
-  Actions panelinin altındaki Delete All Cached Objects sekmesine tıklayın.
-  Karşınıza gelen sorgu penceresinden Yes butonuna tıklayarak diskteki nesnelerin
silinmesini sağlayın.


Belirli Bir Cache Öğesinin Silinmesi

-  IIS Manager’ i çalıştırın.
-  Sunucu ismine gelip tıklayın.



-   Application  Request  Routing  Cache  simgesine çift tıklayarak cache arayüzüne
ulaşın.
-  Actions panelinin altındaki Browse Content sekmesine tıklayın. 
-  Silmek istediğiniz dosyayı seçin. Ardından sağ tarafta bulunan Actions  panelinin
altındaki  Delete Selected Cached Object seçeneğine tıklayın.



-  Karşınıza gelen sorgu penceresinde Yes butonuna tıklayın.
-  Seçmiş olduğunuz cache dosyası silinecektir.


Özel Cache Dosyalarının Silinmesi

-  IIS Manager’ i çalıştırın.
-  Sunucu ismine gelip tıklayın.



-   Application  Request  Routing  Cache  simgesine çift tıklayarak cache arayüzüne
ulaşın.
-  Actions panelinin altındaki Browse Content sekmesine tıklayın. 
-  Silmek istediğiniz dosyayı seçin. Ardından sağ tarafta bulunan Actions  panelinin
altındaki  Delete Selected Cached Object seçeneğine tıklayın.

-  Karşınıza gelen Delete Cached Object penceresindeki URL kısmına silinmesini
istediğiniz dosyaların URL adresini giriniz ve OK butonuna tıklayınız.



-  Karşınıza gelen uyarı penceresinde de OK butonuna tıkladığınız zaman yazdığınız
URL’ deki dosyalar silinecektir.
-  Eğer bir dosya türünün cache dosyalarını silmek istiyorsanız “*” parametresini
kullanabilirsiniz. Örneğin cache klasörü içindeki .jpg formatındaki dosyaları silmek
istiyorsanız aşağıdaki şekilde yazarak OK butonuna tıklayınız;



-  Karşınıza gelen uyarı penceresinde de OK butonuna tıkladığınızda ilgili cache
klasöründeki .jpg uzantılı dosyalar silinecektir.








14. APPLICATION REQUEST ROUTING KULLANILARAK DİSK CACHE

KURALLARINI MANUEL OLARAK YAPILANDIRMA


Bu kısımda cahce yapılandırmasında hangi tür dosya uzantılarının cache’ de tutulacağını ve
bu sürenin nasıl ayarlanabileceği anlatılacaktır.

İlk Gereksinimler ( Ön Koşullar)

  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  ARR cache özelliğinin yapılandırılması


1. Adım: Cache Kontrol Kurallarının Oluşturulması

-  IIS Manager’ i çalıştırın.
-  Sağ tarafta bulunan sunucu ismine gelip tıklayın



-  Application Request Routing Cache simgesine tıklayarak arayüzüne ulaşın.
-  Sağ taraftaki Actions panelinin altındaki Cache Control Rules sekmesine tıklayın.



-  Açılan yeni arayüz penceresinden sağ taraftaki actions panelinin altındaki Add…
seçeneğine  tıklayın.  Karşınıza  Add  Cache  Control  Rule  başlıklı  bir  pencere
gelecektir.
 




-  Apply  rule  kısmına cache kuralının ne zaman kullanılacağını girmeniz  gerekiyor.
(Zaten iki adet seçenek bulunuyor)Biz Always  seçeneğini seçerek  kuralın sürekli
olarak kullanılmasını sağlıyoruz.
-  Cache  seçeneğinin başındaki kutucuğu seçerek cache yapılmasına izin veriyoruz.
Ayrıca  Cache  duration  (minutes)  kısmından  ise  cache  süresini  giriyoruz.
Yukarıdaki resimde cache süresi 30 dakika olarak belirlenmiş. Bunun anlamı son
30 dakikadaki cache dosyalarını tut diğerlerini sil demektir.
-  URL  kısmında  da  hangi  dosya  uzantılarının  cache  yapılacağını  belirtiyoruz.
Yukarıdaki resimde *.jpg olarak girilmiştir. Bunun anlamı tüm jpg uzantılı dosyaları
cache olarak diske yaz demektir.
-  Ok  butonuna tıklayarak kuralınızı kaydedin. Artık cache dosyaları diske yukarıda
belirttiğiniz kurala göre kaydedilecektir.




2. Adım: Cache Kontrol Kurallarının Doğrulanması

Yapılandırdığımız Cache Kontrol Kuralının çalışıp çalışmadığını doğrulayalım;
-  Komut satırını Administrator olarak çalıştırın.
-  Bilgisayarınızın tarayıcısını açarak kural oluşturduğunuz web sunucuya var olan
herhangi bir .jpg isteğini gönderin.
-  Komut satırından cache dosyalarının tutulduğu klasöre girin.



-  .full uzantılı herhangi bir dosyanın bilgisini komut satırından açın. Aşağıdaki gibi
dosya bilgileri karşınıza gelecektir. Buradan cache süresi 1800 saniye olarak
görülmektedir.





15.  APPLICATION REQUEST ROUTING İLE WARM-UP

YAPILANDIRMASI



ARR  bazı  önemli  cache  dosyalarını  hazır  tutmaya  da  imkan  sağlar.  Bunun  için  ARR
sınırlandırılmış bir URL listesini kullanır. ARR bu URL listesine göre doğru cache yapısının
oluşturulduğundan emin olmak için URL Rewrite kurallarını ve CARP özelliğini kullanır. ARR
bu URL listesini iki şekilde kullanır;
-  Liste bir dosya sistemi içerisindedir ve ARR bu listeyi bu dosyadan okur.
-  Liste bir web sunucu üzerindedir ve ARR bu web sunucuya HTTP veya HTTPs
portlarından erişerek dosyayı okur.

Eğer bu URL listesine HTTPs portundan erişiliyorsa ARR cache yapılandırılması da HTTPs’ e
göre yapılandırılmalıdır. ARR Localhost’ a URL Rewrite kurallarını işlemesi için GET isteklerini
gönderir ve CARP önceden cache edilen dosyaların uygunluğunu inceler.

Warm-Up özelliğini aşağıdaki durumlarda kullanmak doğrudur;
-  İçerik bekleyen taleplerin proaktif şekilde cache yapmak istediğinizde,
-  En çok talep edilen istekleri cache etmek istediğinizde,
Bu özellik Child Node ve Parent Node yapılarında beraber kullanılabileceği gibi sadece Child
Node veya sadece Parent Node yapılarında da kullanılabilir. 



İlk Gereksinimler ( Ön Koşullar)

  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  ARR üzerinden sunucu gruplarının yapılandırılması,
  ARR üzerinden LB özelliğinin yapılandırılması,
  Gerekli Tier yapılarının oluşturulması,
  Paylaşımlı konfigürasyon oluşturulması



1. Adım Child Node ve Parent Node Yapıları için Warm-Up oluşturma

-  IIS Manager’ i çalıştırın.
-  Sağ tarafta bulunan sunucu ismine gelip tıklayın



-  Application Request Routing Cache simgesine tıklayarak arayüzüne ulaşın.
-  Sağ taraftaki Actions panelinin altındaki Pre-cache Objects sekmesine tıklayın.



-  Karşınıza gelen Pre-cache Objects penceresinde Pre-cache the following content
kısmına  URL  adreslerinin  tutulduğu  listeyi,  Log  file  kısmında  da  kayıtların
tutulduğu kayıt dosyasının UNC adresini girin.



-  Yukarıda girilen warmup.txt dosyasının içindeki her bir satırda bir adet URL
adresinin  olması  gerekir.  Ayrıca  dosyadaki  URL  adreslerinin  girilmesi  cache
oluşturma adına çok önemlidir.

2. Adım Warm-Up Yapılandırmasını Doğrulaması

-  Bunun için kayıtların tutulduğu warmup.log dosyasını açmanız yeterli olacaktır. Bu
dosyayı Notepad ile açın. Kayıt içeriği aşağıdaki gibi tutulmuşsa Warm-Up özelliği
çalışıyor demektir.



-  Başka bir yöntem ise önceden anlatılan Browse Content seçeneğinden de kayıt
içerikleri görüntülenebilir.

3. Adım Parent Node Yapısı Üzerinden Warm-Up Yapılandırılması

Bazı durumlarda pre-cache yapısını sadece Parent Node’ lar üzerinde yapmak daha faydalı
olabilir. Örneğin Parent Node yapıları Child Node yapılarının performanslarını arttırmak için
oluşturulmuş olabilir.  Böyle durumlarda pre-cache  doyalar  Child  Node  sunucular tarafından
istendiğinde gönderilir.

Parent Node üzerinde Warm-Up özellğini yapılandırmak için aşağıdaki adımları izleyin;
-  Child Node sunuculardan yapılandırmak istediğiniz sunucunun IIS  Manager’ ini
çalıştırın.
-  Sağ tarafta bulunan sunucu ismine gelip tıklayın



-  Application Request Routing Cache simgesine tıklayarak arayüzüne ulaşın.
-  Sağ taraftaki Actions panelinin altındaki Pre-cache Objects sekmesine tıklayın.



-  Karşınıza gelen Pre-cache Objects penceresinde Pre-cache the following content
kısmına  URL  adreslerinin  tutulduğu  listeyi,  Log  file  kısmında  da  kayıtların
tutulduğu kayıt dosyasının UNC adresini girin. Alt kısımdaki Do  not  cache  all
content  on  this  server  seçeneğinin başındaki kutucuğu işaretleyin.  Pencerenin
altında yeni seçeneklerin oluştuğunu göreceksiniz.



-  Peer  servers  kısmına arka tarafta pre-cache dosyalarının tutulacağı sunucuların
adlarını girin. 
-  Address  of  this  server  kısmına da seçili sunucunun adını girin ve OK butonuna
tıklayarak ayarlarınızı kaydedin.
-  Parent  Node  sunucular  üzerinde  Warm-Up  cache  yapılandırılmasını  böylece
tamamlamış olduk.




































16.  APPLICATION REQUEST ROUTING İLE GELEN İSTEKLERİ BYTE

ARALIKLI BÖLÜMLERE AYIRMA


Bu özellik ARR’ ın gelişmiş bir özelliği olup gelen istekleri diskteki cache dosyasına belirli byte
uzunluklarında yazdırmaya yarar. 

İlk Gereksinimler ( Ön Koşullar)

  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  ARR üzerinden sunucu gruplarının yapılandırılması,
  ARR üzerinden LB özelliğinin yapılandırılması,
  Gerekli Tier yapılarının oluşturulması,
  Paylaşımlı konfigürasyon oluşturulması



1. Adım: Gelen İstekleri Byte Aralıklı Olarak Bölümlemeye Genel Bakış

Farklı cache yapılandırmaları istekleri farklı şekillerde diske yazarlar. ARR gelen istekleri
“chunk”  denilen byte uzunluklu küçük parçalarla diske kaydedebilir. Bu küçük parçaların
boyutunu yönetici istediği büyüklükte tanımlayabilir.
Bu özelliğin temelinde gelen istekleri “eşleştirmek”  mantığı yatmaktadır. Aşağıdaki şekilde
istek ARR sunucuya gelmekte, daha sonra bu istek ARR  Orgin sunucuya iletilmektedir. Daha
sonra gönderilen cevap ta ARR  sunucu üzerinde küçük parçalar uzunluğunda  kaydedilerek
istemciye gönderilmektedir. Bundan sonra başka bir kullanıcı veya aynı kullanıcı aynı isteği
gönderdiğinde, ARR sunucu üzerindeki bu küçük boyutlu dosyalar istemciye iletilecektir.




2. Adım: Küçük Dosya boyutlarının (Segmentlerin) Uzunluğunu Yapılandırma

-  IIS Manager’ i çalıştırın.
-  Sağ tarafta bulunan sunucu ismine gelip tıklayın



-  Application Request Routing Cache simgesine tıklayarak arayüzüne ulaşın.
-  Sağ taraftaki Actions panelinin altındaki Cache Configuration sekmesine tıklayın.



-  Byte  range  segment  size  (KB)  kısmına  bu  dosyaların  boyutunun  ne  kadar
olacağını belirleyen değeri girin.



-  Yukarıdaki şekilde bu değer 256 olarak girilmiştir. Yani kaydedilen cache dosyaları
256 KB uzunluklu dosyalar şeklinde kaydedilecektir.  Bu kısım  minimum  1  KB
olarak ayarlanabilir.


3. Adım: Yapılandırmayı Doğrulama

-  Bilgisayarınız tarayıcısından web sunucuya bir dosya isteği gönderin. Örneğin bu
dosya  /pix/IMG_1400.jpg UNC adresine sahip bir dosya olsun.
-   Daha  sonra  komut  penceresini  çalıştırın ve komut satırından cache dosyalarının
kaydedildiği klasörün içeriğini görüntüleyin. Görüldüğü üzere dosyalar girdiğiniz
Byte  range  segment  size  (KB)  değerine göre istenilen dosyanın uzunluğunu byte
uzunluklarına böldüğünü göreceksiniz.




















17.  APPLICATION REQUEST ROUTING İLE CACHE

KONSOLİDASYON ÖZELLİĞİNİ YAPILANDIRMAK


Konsolidasyon,  ARR’  ın gelişmiş bir  özelliği olup sağlamlaştırma, takviye etme anlamına
gelmektedir. Bu kısımda bu konsolidasyon yapılandırılması anlatılacaktır.

İlk Gereksinimler ( Ön Koşullar)

  Windows Server 2008 üzerinde çalışan bir ISS 7 sürümü,
  Microsoft Application Request Routing yazılımı ve bu yazılım ile gelen dört adet bileşen,
  ARR üzerinden sunucu gruplarının yapılandırılması,
  ARR üzerinden LB özelliğinin yapılandırılması,
  Gerekli Tier yapılarının oluşturulması,
  Paylaşımlı konfigürasyon oluşturulması


1. Adım: Konsolidasyon İsteğine Genel Bakış

Cache proxy yapılandırması içerik kullanılmaya hazır olduğu sürece sorunsuz çalışır. Ancak
cache  proxy’  leri  canlı yayın verilerini  direk  olarak  cache  dosyalarına yazarken bazı kayıplar
yaşanır. Örneğin binlerce kişinin izlediği canlı bir futbol maçının  verileri  cache dosyasına
yazılırken yazılamayan cache dosyalarına nasıl erişilebilir? Ya da izleyiciler maç izlerken canlı
yayında bir atlama olduysa izleyiciler bu kısmı nasıl tekrar izleyebilir?
İşte  yukarıdaki  soruların  cevabını  çözmek  için  ARR,  request  consolidation  (istek
konsolidasyonu)  özelliğini geliştirmiştir. Bu özellik ile kayıp cache dosyası ilk başta Child
sunucuya  orada  yoksa  Parent  sunucuya  orda  da  yoksa  live  sunucuya  sorulur  ve  istemciye
gönderilir. Zaten canlı yayındaki veri kayıpları genelde Child Node yapılarında olur.



Yukarıdaki şekil bu özelliğin çalışma mantığını özetlemektedir.
2. Adım: Request Consolidation (İstek Konsolidasyonu) Özelliğini Yapılandırma

-  IIS Manager’ i çalıştırın.
-  Sağ tarafta bulunan sunucu ismine gelip tıklayın



-  Buradan oluşturduğunuz Tier yapısının üzerine gelip tıklayın.  İlgili canlı yayın
server farmını seçin. Karşınıza gelen arayüz penceresinden Caching yazan simgeye
çift tıklayarak arayüzüne ulaşın;




-  Buradan  Enable  request  consolidation  seçeneğinin  başındaki  kutucuğu
işaretleyin.  Daha  sonra  sağ  tarafta  bulunan  Apply  seçeneğine  tıklayarak
ayarlarınızı kaydedin. 




-  Böylece bu yapılandırmaya izin vermiş olacaksınız.

1 yorum:

  1. merhaba,

    Anlatım ve emeklerin için teşekküler, şöyle bir sorum var, ARR(192.168.2.15) – IIS1(192.168.2.16) – IIS2(192.168.2.17) olarak konfigüre ettiğimde adresim.com domainine çağrı yapıldığında yük durumuna göre 192.168.2.16 veya 192.168.2.17’den yanıtlıyor buraya kadar sorun yok, ancak 2.16 ve 2.17’yi offline yaptığımda “502 – Web server received an invalid response while acting as a gateway or proxy server.” hatası almaya başlıyorum. ARR olan 192.168.2.15’de aynı zamanda bir IIS sunucu ve 2.16 ve 2.17 ile aynı içeriğe sahip ancak diğer iki sunucu online veya offline iken asla ana sunucu olan 2.15’den yanıtlamıyor ve diğer iki sunucu down olduğunda da yine 2.15 sunucusundan yanıtlamıyor, bu ARR için doğru bir davranış mıdır? ana sunucu olan 2.15’in de yanıtlamasını sağlamanın bir yolu var mı?

    YanıtlaSil