Öncelikle, durumumu size açıklayacağım. Bir yan proje olarak oldukça popüler bir web sitesi çalıştırıyorum, bu yüzden gerçekten bir ton para yatırım yapamıyorum. Şu anda ön HAProxy ile Apache'ye normal istekleri ve Lighttpd'ye tüm statik dosya isteklerini gönderen sadece bir sunucum var. Tüm resimler daha hızlı Lighttpd'e gönderilirken (php ve post istekleri Apache tarafından işlenir çünkü bu gerçekten iyi çalışıyor (site çoğunlukla resimlerdir, bu yüzden bu gerçekten önemlidir). Kısa URL'ler de gerçekten önemli olduğundan, bu nedenle HAProxy kullanma nedenim, görüntüleri sunmak için bir alt alan adı ayarlamak zorunda kalmamak güzel olurdu.
Kullandığım oldukça ucuz ölçülmemiş bant genişliği sunan bir barındırma sağlayıcı buldum, 100mbs ağ kartı işleyebildiği kadar bant genişliğini dışarı itmeye başladığımda sorun geliyor, böylece ikinci bir sunucuya ihtiyaç duyuyorum.
Seçeneklerime çok fazla düşünce koydum, bu yüzden her birini size açıklayacağım. Umarım hangisinin benim için en iyi seçenek olduğu konusunda bir fikir verebilirsin, ya da belki de henüz düşünmediğim başka bir seçenek var.
Gereksinimler:
Bant genişliği dağılımı bile bir zorunluluktur. Oldukça güçlü bir sunucum var, bu yüzden ölçeklendirme bir seçenek değil. Daha fazla bant genişliği elde etmek için ölçeklendirmem gerekiyor.
Kısa URL'ler. Görüntülerimi sunmak için img.example.com gibi bir alt alan adı ayarlamayacağım. example.com/image.jpg şimdi nasıl ve nasıl kalmasını istiyorum. Ama başka yolu yoksa, o zaman anlıyorum.
İstek işleme clostest sunucusu gerçekten güzel olurdu, ama bir zorunluluk değil. Akılda tutulması gereken bir şey.
Yük dengelemesi için HAProxy:
- Zaten HAProxy kullandığım için bunu yapmak çok kolay olurdu. Ancak, bant genişliği dağıtılırken sorun olduğunu düşünüyorum. Bu konuda yanlış olabilir, ancak HAProxy, sunucunun işlediği ve daha sonra istemciye HAProxy aracılığıyla geri gönderdiği bir sunucuya istek göndermiyor mu? Böylece, tüm trafik yük dengeleyici üzerinden geri döner ve tüm sunucular birleştirildiği kadar bant genişliği kullanmasına neden olur.
DNS Turu Robin:
- Bu benim en iyi seçeneğim olabilir. Web sitesini birden çok sunucuda çoğaltın ve şimdi ne yaptığımı yapın. Dezavantajı, bir sunucu çökerse, istemciler yine de ona gönderilir. Ayrıca siteyi birden çok sunucu arasında çoğaltmam gerekir. Ben tür statik dosyaları dışında her şeyi işleyen bir ana sunucu ve daha sonra statik dosya sunucuları bir çift umuyordum. Bunun bir çeşit 'fakir adamın yük dengelemesi' olduğunu da okudum ve biraz daha sofistike bir şeye sahip olmak güzel olurdu.
Doğrudan Sunucu Dönüşü:
- Gerçekten karmaşık görünüyor, ancak iyi bir seçenek olabilir. Yine de belirli URL'leri belirli sunuculara gönderebilir miyim? Şu anda HAProxy'de olduğu gibi, doğru dosya uzantısında biten her URL Lighttpd'ye gönderilirken, diğer uzantılar Apache'ye gönderilir. Bu yüzden benzer bir şeye ihtiyacım var. Gibi, tüm php istekleri dengeleme yazılımı çalıştıran aynı sunucu tarafından işlenirken, tüm jpg istekleri birden çok sunucuya gönderilir.
İdeal olarak, HAProxy Direct Server Return'i destekliyorsa sorunum çözülecektir. Ayrıca bir CDN kullanmak istemiyorum, çünkü gerçekten pahalılar ve bu sadece bir yan proje.
Sorunumu anlıyor musun? Bir şeyi doğru bir şekilde açıklamamışsam veya daha fazla bilgiye ihtiyacınız varsa bana bildirin.