Pertama, saya akan menjelaskan situasi saya kepada Anda. Saya menjalankan situs web yang cukup populer sebagai proyek sampingan, jadi saya tidak dapat benar-benar menginvestasikan banyak uang ke dalamnya. Saat ini saya hanya memiliki satu server dengan HAProxy di depan mengirimkan permintaan normal ke Apache, dan semua permintaan file statis ke Lighttpd. Ini berfungsi dengan sangat baik karena semua permintaan php dan posting ditangani oleh Apache, sementara semua gambar dikirim ke Lighttpd yang lebih cepat (situs ini sebagian besar gambar, jadi ini sangat penting). Alangkah baiknya untuk tidak perlu membuat sub-domain untuk menyajikan gambar, karena URL pendek juga sangat penting, jadi alasan saya untuk menggunakan HAProxy.
Saya telah menemukan penyedia hosting yang menawarkan bandwidth unmetered cukup murah yang telah saya gunakan, masalahnya muncul ketika saya mulai mendorong bandwidth sebanyak yang dapat ditangani oleh kartu jaringan 100mbs, sehingga membutuhkan server kedua.
Saya telah banyak memikirkan pilihan saya, jadi saya akan menjelaskan masing-masing kepada Anda. Mudah-mudahan Anda bisa memberikan wawasan tentang mana yang merupakan pilihan terbaik bagi saya, atau mungkin ada opsi lain di luar sana yang belum saya pikirkan.
Persyaratan:
Bahkan distribusi bandwidth adalah suatu keharusan. Saya memiliki server yang cukup kuat, jadi meningkatkan bukan pilihan. Saya perlu mengurangi untuk mendapatkan lebih banyak bandwidth.
URL pendek. Saya benar-benar tidak ingin menyiapkan subdomain, seperti img.example.com, untuk menyajikan gambar saya. example.com/image.jpg adalah bagaimana sekarang, dan bagaimana saya benar-benar ingin tetap. Tetapi jika tidak ada cara lain, maka saya mengerti.
Server clostest yang menangani permintaan akan sangat bagus, tetapi bukan keharusan. Sesuatu yang perlu diingat.
HAProxy untuk memuat keseimbangan:
- Ini akan sangat mudah dilakukan karena saya sudah menggunakan HAProxy. Namun, saya pikir masalah muncul ketika mendistribusikan bandwidth. Saya mungkin salah dalam hal ini, tetapi bukankah HAProxy mengirim permintaan ke server tempat server memprosesnya dan kemudian mengirimkannya kembali melalui HAProxy ke klien? Dengan demikian, semua lalu lintas keluar melalui load balancer yang menyebabkannya menggunakan bandwidth sebanyak semua server digabungkan.
DNS Round Robin:
- Ini mungkin pilihan terbaik saya. Cukup gandakan situs web di beberapa server dan lakukan apa yang saya lakukan sekarang. The downside adalah bahwa jika satu server turun, klien masih dikirim ke sana. Saya juga perlu meniru situs di beberapa server. Saya agak berharap bahwa saya dapat memiliki satu server utama yang menangani semuanya kecuali file statis, dan kemudian memiliki beberapa server file statis. Saya juga membaca bahwa ini semacam 'penyeimbangan muatan orang miskin', dan akan menyenangkan jika memiliki sesuatu yang sedikit lebih canggih.
Pengembalian Server Langsung:
- Tampaknya sangat rumit, tetapi mungkin merupakan pilihan yang baik. Apakah saya masih dapat mengirim URL tertentu ke server tertentu? Seperti sekarang dengan HAProxy, setiap URL yang berakhir dengan ekstensi file yang tepat dikirim ke Lighttpd, sedangkan ekstensi lainnya dikirim ke Apache. Jadi saya akan membutuhkan sesuatu yang serupa. Seperti, semua permintaan php ditangani oleh server yang sama yang menjalankan perangkat lunak penyeimbang, sementara semua permintaan jpg dikirim ke beberapa server.
Idealnya, jika HAProxy mendukung Direct Server Return, maka masalah saya akan terpecahkan. Saya juga tidak ingin menggunakan CDN, karena harganya sangat mahal, dan ini hanyalah proyek sampingan.
Apakah Anda mengerti masalah saya? Beri tahu saya jika saya tidak menjelaskan sesuatu dengan benar atau jika Anda memerlukan info lebih lanjut.