Etiket arşivi: Hosting & IIS7

IIS7.5 üzerinde PHP destekli Web Farm kurulumu

IIS7.5 üzerinde nasıl PHP destekli Web Farm kurabileceğimizi anlatmaya çalışacağım. Öncelikle neden Web Farm’a ihtiyaç duyduğumuzu anlatıp, sonrasında kurulum adımlarına geçeceğim.

1- Fault-Tolerance
2- Performance

Web sunucularından beklenen en önemli şartları yukardaki gibi sıralayabiliriz. Bir web sitesinin %100 uptime oranına sahip olması ve performanslı çalışması istenilir. Fakat çoğu web sunucusu, yedekli yapılarda çalışmadığı için sunucu üzerinde yaşanabilecek yazılımsal ya da donanımsal sorunlardan dolayı, uptime oranı ve performansta düşmeler gözlenebilir. En basitinden bir Windows Update bile, gece yarısı tüm sunucunun 5-15 dk arası kapalı kalmasına neden olabilir. İşte Web Farm ile performans düşüşlerini ortadan kaldırabilir, yazılımsal ve donanımsal bazlı kesintileri engelleyebiliriz.

Öncelikle kuracağımız IIS Farm için 5 adet sunucuya ihtiyaç duyacağız.

1 adet Windows Server 2008 R2: Domain Controller için kullanacağız. Kullanıcılar bu sunucu üzerinde tutulacak.
2 adet Windows Server 2008 R2: File Cluster için kullanacağız. Web dosyalarını bu sunucu üzerinde tutacağız.
2 adet Windows Server 2008 R2: IIS7.5 için kullanacağız. Web servisi bu sunucular üzerinden hizmet verecek.

File Cluster ile Domain Controller kurulumlarının IIS Farm ile ilgisi olmadığından dolayı bu kurulumların anlatımını es geçiyorum. Öncelikle Domain Controller’ın kurulumunu yapmalı ve tüm sunucuları bu DC’ye join etmelisiniz. Sonrasında 2 adet File sunucumuz üzerinde Windows Cluster servisini kullanarak dosya paylaşım klasörü yaratmanız gerekiyor. Windows Cluster servisi üzerinden File Cluster’ı ayarlamanız halinde, paylaşım klasörünü sizin için hazır hale getirecektir. Bu paylaşım klasörünü Web sunucularımız üzerinden kullanabilmek için aşağıdaki NTFS ayarlarını yapmamız gerekiyor. NTFS izinlerini ayarlarken aşağıdakilere dikkat etmeniz gerekiyor:

System” kullanıcı hesabının her klasör üzerinde “Full Control” yetkisi olmalı.
Domain Admins” grubuna her klasör üzerinde “Full Control” yetkisi verebilirsiniz.
FTP için yaratacağınız kullanıcı adlarının, sadece site klasörleri üzerinde “Modify” yetkisi olmalı.
Application Pool için ayrı kullanıcı yaratacaksanız, bu kullanıcıların “Read” yetkisi olması yeterli.
Sitenin kullanıcı hesabının “Read” yetkisi olmalıdır. Upload yapılacak klasörlere, Modify yetkisi verilebilir.
Logs\FailedReqLogs klasörü üzerinde Application Pool kullanıcısının ayrıca “Full Control” yetkisi olmalıdır.

Not: Yanlışlıkla Publish ettim yazımı. Tamamlamaya çalışıyorum 🙂

Sitemi Radore Hosting’in Cloud Computing Web Servisine taşıdım.

Bugün itibariyle Radore Hosting‘in Cloud Computing Web Servisi aktif durumda. Bir ara Windows Azure’a geçmeyi planlarken, Azure’un yönetiminin zor olması ve PHP’nin Azure üzerinde çalıştırılmasının acı çektirici olduğunu farkederek, Türkiye içine çok daha hızlı yanıt verebilecek olan ve PHP on Windows’un default olarak geldiği RCP’ye (Radore Cloud Platform) geçmeye karar verdim. Tüm sistemin yedekli olduğu RCP’yi biraz açacak olursak;

-Yedekli İnternet Erişimi (Yurt içi ve Yurt dışı)
-Yedekli Trafo (İki farklı trafodan elektrik alan sunucular, Türkiye’de bir ilk sayılabilir)
-Yedekli Jeneratör
-Yedekli UPS
-Yedekli Soğutma Sistemi
-Yedekli Cisco Switch
-Yedekli Fiziksel Storage
-Hyper-V Cluster üzerinde Yedekli Web Sunucuları
-Hyper-V Cluster üzerinde Yedekli FTP Sunucuları
-En önemlisi: Web Sunucuları NLB (Yük dengeleyici) olarak çalışıyorlar.

Hyper-V Cluster üzerinde Yedekli Web Sunucuları ve Yedekli FTP Sunucuları özelliğini biraz açmak istiyorum. Web sunucuları, Hyper-V Cluster’lar üzerinde çalışıyor. Böylece zaten yedekli olan Web Sunucuları, donanımsal anlamda da yedeklenmiş oluyor. Ana sunucudaki donanımsal bir arızanın, böyle bir sistemde Web Sunucularını etkilemesi olasılığı yok. Bununla birlikte Web Sunucuları da kendi aralarında yedekli olduğu için, sunuculardaki yazılımsal hatalardan dolayı sistem kesintisi oluşmamış oluyor. Bu da %99.9 uptime oranını garanti ediyor.

Ayrıca klasik Aktif/Pasif Windows Cluster sistemi yerine Web Sunucuları IIS7.5 sayesinde Aktif/Aktif olarak çalışıyor ve NLB sayesinde sitelere gelen trafik yükü, sunucular üzerine dağıtılıyor. Bu yük dengelemesi sayesinde, o anda hangi farm node’u size cevap veriyorsa versin, maksimum performans ve yanıt hızı ile hizmet vermiş oluyor. Bununla birlikte yazılımsal ve donanımsal olarak çalışan FTP sistemi sayesinde, geceden upload etmeye başladığınız dosyalarınız, gece FTP servisinde oluşacak bir sorundan dolayı kesintiye uğramamış oluyor. Bir FTP sunucusunun çökmesi halinde, saniyeler içersinde diğer FTP sunucusu devreye girecek ve kullandığınız FTP client session’ı yenileyerek, dosyalarınızı yollamaya devam edecektir.

Hizmetin, normal hosting paketleri fiyatına satılacak olması ise ayrıca güzel bir durum.

FTP’deki Active Mode ve Passive Mode farkı

Mail ile bir ziyaretçimden bu yönde bir soru aldım. Bu yüzden siteye de eklemeyi uygun görüyorum.

Active FTP:

Sunucu üzerinde 20 ve 21 nolu portların açık olması lazım.
Kullanıcı tarafında ise 1023 üzeri portların açık olması lazım.

Passive FTP:

Sunucu üzerinde 21 ve 1023 üzeri portların açık olması lazım.
Kullanıcı tarafında ise herhangi bir portun açık olmasına gerek yoktur.

O halde, siz firewall arkasındaysanız, sunucuya passive mode ile bağlanmaktan başka bir çareniz yok demektir. Bu nedenle sunucu üzerinde 1023 üzeri portları açmanız gerekiyor.

Yok eğer firewall arkasında değilseniz, o zaman sunucu üzerinde gereksiz port açmanıza gerek yok demektir. Sunucu tarafında sadece 20 ve 21 nolu portları açmanız yeterli olacaktır. Yalnız size de 1023 ve üzeri portlardan erişim yapılabiliyor olması lazım.