ก่อนอื่นฉันจะอธิบายสถานการณ์ของฉันให้คุณฟัง ฉันใช้งานเว็บไซต์ที่ได้รับความนิยมเป็นอย่างมากดังนั้นฉันจึงไม่สามารถลงทุนเงินจำนวนมหาศาลได้ ขณะนี้ฉันมีเซิร์ฟเวอร์เพียงเครื่องเดียวที่มี HAProxy อยู่ข้างหน้าส่งคำขอปกติไปยัง Apache และคำขอไฟล์คงที่ทั้งหมดไปยัง Lighttpd สิ่งนี้ทำงานได้ดีเพราะ Apache และ PHP ทุกคำขอได้รับการจัดการโดย Apache ในขณะที่ภาพทั้งหมดจะถูกส่งไปยัง Lighttpd ที่เร็วขึ้น (เว็บไซต์ส่วนใหญ่เป็นรูปภาพดังนั้นนี่จึงเป็นสิ่งสำคัญจริงๆ) คงจะดีหากไม่ต้องตั้งค่าโดเมนย่อยสำหรับแสดงภาพเพราะ URL สั้น ๆ ก็สำคัญเช่นกันดังนั้นเหตุผลของฉันในการใช้ HAProxy
ฉันพบผู้ให้บริการโฮสต์ที่ให้แบนด์วิดท์ที่ไม่มีมิเตอร์ราคาถูกที่ฉันใช้อยู่ปัญหามาเมื่อฉันเริ่มผลักแบนด์วิดท์ให้มากที่สุดเท่าที่การ์ดเครือข่าย 100mbs สามารถจัดการได้ดังนั้นจึงต้องมีเซิร์ฟเวอร์ที่สอง
ฉันได้คิดมากเป็นตัวเลือกของฉันแล้วฉันจะอธิบายให้คุณฟัง หวังว่าคุณสามารถให้ข้อมูลเชิงลึกเกี่ยวกับตัวเลือกที่ดีที่สุดสำหรับฉันหรืออาจมีตัวเลือกอื่นจากที่นั่นซึ่งฉันยังไม่ได้คิด
ที่ต้องการ:
แม้แต่การกระจายแบนด์วิดท์ก็เป็นสิ่งจำเป็น ฉันมีเซิร์ฟเวอร์ที่ทรงพลังพอสมควรดังนั้นการปรับขนาดไม่ใช่ตัวเลือก ฉันต้องขยายออกเพื่อให้ได้แบนด์วิดท์ที่มากขึ้น
URL สั้น ๆ ฉันไม่ต้องการตั้งค่าโดเมนย่อยเช่น img.example.com เพื่อแสดงภาพของฉัน example.com/image.jpg คือตอนนี้เป็นอย่างไรและฉันต้องการให้อยู่อย่างไร แต่ถ้าไม่มีวิธีอื่นฉันก็เข้าใจ
เซิร์ฟเวอร์ clostest ที่จัดการการร้องขอจะดีจริง ๆ แต่ไม่จำเป็นต้อง สิ่งที่ต้องจำไว้
HAProxy ถึง loadbalance:
- มันจะง่ายมากที่จะทำตั้งแต่ฉันใช้ HAProxy อยู่แล้ว อย่างไรก็ตามฉันคิดว่าปัญหาเกิดขึ้นเมื่อทำการกระจายแบนด์วิดท์ ฉันอาจจะผิดในเรื่องนี้ แต่ไม่ HAProxy ส่งคำขอไปยังเซิร์ฟเวอร์ที่เซิร์ฟเวอร์ประมวลผลแล้วส่งกลับผ่าน HAProxy ไปยังลูกค้าหรือไม่ ดังนั้นทราฟฟิกทั้งหมดจะย้อนกลับไปที่ load balancer ทำให้มันใช้แบนด์วิดท์เท่าที่เซิร์ฟเวอร์ทั้งหมดรวมกัน
DNS Round Robin:
- นี่อาจเป็นตัวเลือกที่ดีที่สุดของฉัน เพียงทำซ้ำเว็บไซต์ผ่านเซิร์ฟเวอร์หลายเครื่องและทำสิ่งที่ฉันทำอยู่ตอนนี้ ข้อเสียคือถ้าเซิร์ฟเวอร์หนึ่งล่มลูกค้ายังคงถูกส่งไป ฉันจะต้องทำซ้ำไซต์ผ่านเซิร์ฟเวอร์หลายเครื่อง ฉันหวังว่าฉันจะมีเซิร์ฟเวอร์หลักหนึ่งตัวที่จัดการทุกอย่างยกเว้นไฟล์สแตติกและมีเซิร์ฟเวอร์ไฟล์แบบสแตติกสองสามตัว ฉันยังอ่านด้วยว่านี่เป็น 'สมดุลภาระของคนยากจน' และมันก็ดีที่มีบางสิ่งที่ซับซ้อนกว่านี้
ส่งคืนเซิร์ฟเวอร์โดยตรง:
- ดูเหมือนซับซ้อนจริงๆ แต่อาจเป็นตัวเลือกที่ดี ฉันจะยังสามารถส่ง URL ไปยังเซิร์ฟเวอร์บางแห่งได้หรือไม่ เช่นเดียวกับตอนนี้ด้วย HAProxy ทุก URL ที่ลงท้ายด้วยนามสกุลไฟล์ที่ถูกต้องจะถูกส่งไปยัง Lighttpd ในขณะที่ส่วนขยายอื่น ๆ จะถูกส่งไปยัง Apache ดังนั้นฉันต้องการสิ่งที่คล้ายกัน เช่นเดียวกับคำขอ php ทั้งหมดได้รับการจัดการโดยเซิร์ฟเวอร์เดียวกันที่รันซอฟต์แวร์การปรับสมดุลในขณะที่คำขอ jpg ทั้งหมดถูกส่งไปยังเซิร์ฟเวอร์หลายเครื่อง
เป็นการดีถ้า HAProxy สนับสนุน Direct Server Return ปัญหาของฉันก็จะได้รับการแก้ไข ฉันไม่ต้องการใช้ CDN เพราะราคาแพงจริง ๆ และนี่เป็นเพียงโครงการด้านหลังเท่านั้น
คุณเข้าใจปัญหาของฉันหรือไม่ แจ้งให้เราทราบหากฉันไม่ได้อธิบายบางอย่างถูกต้องหรือหากคุณต้องการข้อมูลเพิ่มเติม