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.
merhaba,
YanıtlaSilAnlatı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ı?