Application Request Routing – IIS de Yük Dengeleme

Web sunucularınız için birçok yük dengeleme çözümü mevcut.

DNS round robin gibi kolay ve ücretsiz bir çözümden tutunda ihtiyaca göre donanımsal load balanced cihazlara kadar birçok çözüm ile web sunucu ortamınızı (web farm) hem yedekli hem de yük dağıtımlı olarak yapılandırabilirsiniz.

Application Request Routing (ARR) ise IIS sunucularınız üzerine kurulabilen Microsoft’un sağladığı ücretsiz bir çözüm.

ARR, IIS 7.0, 7.5, 8, 8.5 ve 10 sürümleri üzerinden kullanılabilir.

Web sunucularınızın önünde, ayrı bir IIS sunucusu üzerine kurulması gereken bu eklenti ile sunucularınıza gelen istekleri istediğiniz gibi yönlendirebilir, dağıtabilir ve gözlemleyebilirsiniz.

 

Yapılandırmayı resimde olduğu gibi üç adet IIS sunucusu ile yapacağım.

ARR sunucusu üzerinde web server (IIS) bileşeni kuruludur. Varsayılan ayarlar yeterli olmaktadır.

Application Server 1 ve 2 sunucuları üzerinde www.ortacdemirel.com.tr web sayfası yer almaktadır. Her iki sunucuda da aynı içerik yer almalıdır.

Tüm kurulum ve yapılandırmaları öndeki ARR sunucusu üzerinde yapacağız.

www.iis.net sitesinden Application Request Routing eklentisinin kurulumu için gerekli olan eklentiyi çekiyoruz.

 

Web uygulama yönetimi içinden ARR yazılımının 3.0 sürümünü kuruyoruz.

 

Bu kurulum bir takım ön gereksinimleri de internetten çekip kuracaktır.

 

Kurulum bittikten sonra Default Application pool umuzun gelişmiş ayarlarına giriyoruz.

 

Idle Time-out (minutes) değerini  sıfıra çekiyoruz.

 

IIS konsolunu tekrar açtığımızda “Server farms” nesnesinin geldiğini görmekteyiz.

ARR eklentisinin temel mantığında sunucu grubu oluşturmak web sayfalarınızı barındıran IIS sunucuları bu gruba eklemek vardır. Bu sebep ile server farms bölümüne sağ tıklayıp yeni bir sunucu grubu oluşturuyoruz.

 

Yeni sunucu grubumuza bir isim veriyoruz. Herhangi bir isim verebilirsiniz. Bu isim ile ilgili URL rewrite bölümünde bir kayıt da açılacaktır.

 

Web sayfamızı barındıran IIS sunucuları ekliyoruz. ARR eklentisi yüklü olan sunucuyu eklemiyoruz.

 

Gelişmiş ayarlardan gelen isteklerin hangi portlardan yapılacağı ya da yük dengeleme ağırlık ayarlarını yapabiliriz.

 

Daha önce belirttiğim üzere URL rewrite ayarı da farm ismine göre yapılandırılacaktır. Açılan kutuyu da onaylayıp bitiriyoruz.

 

Server Farms bölümüne yeni server grubumuz ekleniyor. Aynı zamanda ortadaki bölümde yönetim araçlarını görüyorsunuz.

 

Caching: Kaşeleme ayarları için kullanılır. Varsayılan olarak 60 saniye boyunca bellekte veri kaşelenir.

 

Health Test: Sağlık testi. Yük dağıtımlı olarak çalışacak web sayfanızı mutlaka bu alana girip test etmeniz gerekmektedir. Örnek: www.ortacdemirel.com.tr

 

Benim yapımda IIS1 ve IIS2 sunucularında www.ortacdemirel.com.tr  sitesinin gerçek içerikleri yer alır.

IIS3 yani ARR eklentisini kurduğum sunucuda ise sadece varsayılan web sayfasının binding ayarları aşağıdaki gibidir.

 

Web sayfasının tüm içeriği kesinlikle ARR sunucusunda yer almaz. Tabi IIS1 ve IIS2 uygulama sunucularının da binding ayarı yukardaki ile aynıdır.

Burada kritik olan DNS ayarlarıdır.

Kullanıcılar siteye erişmek için www.ortacdemirel.com.tr yazdıklarında DNS sunucu tarafından ARR sunucusuna yönlendirilmelidirler. Bu yüzden host A kaydım ARR sunucusunu gösterir.

 

Kesinlikle IIS1 ve IIS2 için www kaydını DNS e girmiyoruz.

Load Balance: Yük dağıtım algoritması bu bölümden yapılandırılır. Kullanıcıların birinci ve ikinci uygulama sunucularına otomatik olarak yönlendirilmesi için “Weighted round robin” i seçebiliriz.

 

Bu sayede www.ortacdemirel.com.tr ye yapılan istekler IIS1 ve IIS2 sunucularına paylaştırılacaktır.

Monitoring and Management: Gelen isteklerin sayısını, yüzdesini ve network trafiğini bu bölümden gözlemleyebiliriz.

Aynı zamanda sunucuların üzerine sağ tıklayıp istatistikleri sıfırlama, sunucuya gelen istekleri durdurma veya sunucuyu geçici olarak erişilmez kılabiliriz.

 

Sunucuyu erişilmez kıldığımızda hemen ARR diğer sunucuya istekleri göndermeye başlayacaktır.

Proxy: Proxy ayarları mevcuttur. ARR önünde bir donanımsal yük dağıtım aracı kullanıyorsak bu bölümden yapılandırabiliriz.

 

Routing Rules: URL Rewrite özelliği ile birlikte trafiği yönlendirmek için kurallar hazırlayabilirsiniz.

 

Server Affinity: Sunucu ilişkisi için ARR çerezleri kullanılır. Client affinity seçeneği ile hazırlanan çerez ismi istemcilerin kullanımı için hazırlanır. Fakat bunun düzgün çalışması için istemci makinenin bunu kabul etmesi zorunludur.

 

Son olarak ise IIS in genel ayarlarında URL Rewrite yer alır.

 

Oluşturmuş olduğunuz sunucu farm ismi ile yeni bir URL rewrite ayarı burada yer alır. Bu bölümden de birçok ayar yapılabilir.

 

Bu uygulamayı Exchange in OWA adresi içinde kullanabilirsiniz.

http://www.msexchange.org/articles-tutorials/exchange-server-2013/mobility-client-access/iis-application-request-routing-part1.html

 

 

 

Paylaş

12 thoughts on “Application Request Routing – IIS de Yük Dengeleme

  1. Caner

    Hocam merhaba,

    Cookie veya SSL Ofloading gibi ayarlar yapabiliyor muyuz ?
    ARR Sunucusu gelen isteğe bağlı olarak ne kadar kaynak kullanır ?

    Reply
  2. Ortaç Demirel Post author

    Merhaba,

    SSL offload ayarı yapabiliyorsunuz. Alttan 3. resimde mevcut.

    Ne kadar kaynak kullanacağı gelen isteğe göre değişir diye düşünüyorum. MS in sağladığı bir bilgi yok elimde.

    Reply
  3. ismail

    IIS1 VE IIS2 sunucularımızda bulunan belli siteleri yük dengelemesi yapmak istersek nasıl bir ayarlama yapmamız gerekiyor.
    yani IIS1 10 tane sitemiz aynı şekilde IIS2 de 10 tane sitemiz var.
    ama biz sadece 3 tanesine yük dengelemesi yapmak istiyoruz.

    bunu nasıl yapabiliriz.
    teşekkürler

    Reply
  4. Soner CAKIR

    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ı?

    Reply
    1. Ortaç Demirel Post author

      Selamlar,

      Yanılmıyorsam dizayn gereği ana farm sunucuyu bu şekilde kullanamıyorsunuz.

      Reply
  5. Kamil

    Merhabalar,

    Bu işlem yapılınca 2 iis sunucusundaki verilerin güncelliği nasıl sağlanıyor ör ben iis1 e yönlendim ve oraya içerik girdim 2. iis e otomatik olarak yansıyormu girilen veriler yoksa shared disk vs mi oluşturmak gerekiyor
    Teşekkürler

    Reply
    1. Ortaç Demirel Post author

      Selam. İçerik güncellemesini powershell, robocopy aracı ya da dfs ile yapabilirsiniz.

      Shared disk de olur.

      Reply
  6. Berk

    Ortaç Bey merhaba,
    Sormak istediğim soru Kapalı networkte bulunan uygulamam içindeki bir program DMZ aracılığı ile xyz sitesinden veri çekmesini istiyorum. Forward proxy kullanıyorum DMZ tarafında fakat veri çekmek istediğim site HTTPS. Forward proxy de https’i desteklemiyor dökumanlarından gördüğüm kadarıyla. Trick var mıdır? ya da önerebileceğiniz farklı bir durum olabilir mi?
    Teşekkür ederim

    Reply
  7. Pingback: LoadBalancer With İİS

Leave a Reply to Soner CAKIR Cancel reply

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