Trước hết, tôi sẽ giải thích tình huống của tôi cho bạn. Tôi đang điều hành một trang web khá phổ biến như một dự án phụ, vì vậy tôi thực sự không thể đầu tư rất nhiều tiền vào nó. Tôi hiện chỉ có một máy chủ có HAProxy ở phía trước gửi các yêu cầu bình thường tới Apache và tất cả các yêu cầu tệp tĩnh tới Lighttpd. Điều này đang hoạt động rất tốt vì tất cả các yêu cầu php và bài đăng đều được xử lý bởi Apache, trong khi tất cả các hình ảnh được gửi đến Lighttpd nhanh hơn (trang web chủ yếu là hình ảnh, vì vậy điều này thực sự quan trọng). Sẽ thật tuyệt nếu không phải thiết lập một tên miền phụ để phục vụ hình ảnh, bởi vì các URL ngắn cũng thực sự quan trọng, vì vậy lý do tôi sử dụng HAProxy.
Tôi đã tìm thấy một nhà cung cấp dịch vụ lưu trữ cung cấp băng thông chưa được đáp ứng khá rẻ mà tôi đang sử dụng, vấn đề xảy ra khi tôi bắt đầu sử dụng nhiều băng thông như card mạng 100mbs có thể xử lý, do đó cần một máy chủ thứ hai.
Tôi đã suy nghĩ rất nhiều về các lựa chọn của mình, vì vậy tôi sẽ giải thích từng vấn đề cho bạn. Hy vọng rằng bạn có thể cung cấp một số cái nhìn sâu sắc về cái nào là lựa chọn tốt nhất cho tôi, hoặc có thể có một lựa chọn khác ngoài đó mà tôi chưa nghĩ đến.
Yêu cầu:
Ngay cả phân phối băng thông là phải. Tôi có một máy chủ khá mạnh, vì vậy việc mở rộng không phải là một lựa chọn. Tôi cần mở rộng ra để đạt được nhiều băng thông hơn.
URL ngắn. Tôi thực sự không muốn thiết lập một tên miền phụ, như img.example.com, để phục vụ hình ảnh của mình. example.com/image.jpg là như thế nào bây giờ và làm thế nào tôi thực sự muốn nó ở lại. Nhưng nếu không còn cách nào khác, thì tôi hiểu.
Máy chủ clostest xử lý yêu cầu sẽ thực sự tốt, nhưng không bắt buộc. Một cái gì đó để giữ trong tâm trí.
HAProxy để cân bằng tải:
- Nó sẽ thực sự dễ dàng vì dù sao tôi cũng đã sử dụng HAProxy. Tuy nhiên, tôi nghĩ vấn đề xuất hiện khi phân phối băng thông. Tôi có thể sai về điều này, nhưng HAProxy không gửi yêu cầu đến máy chủ nơi máy chủ xử lý nó và sau đó gửi lại thông qua HAProxy cho khách hàng? Do đó, tất cả lưu lượng truy cập trở lại thông qua bộ cân bằng tải khiến nó sử dụng nhiều băng thông như tất cả các máy chủ kết hợp.
Robin vòng DNS:
- Đây có thể là lựa chọn tốt nhất của tôi. Chỉ cần sao chép trang web trên nhiều máy chủ và làm những gì tôi đang làm bây giờ. Nhược điểm là nếu một máy chủ ngừng hoạt động, máy khách vẫn được gửi đến nó. Tôi cũng sẽ cần sao chép trang web trên nhiều máy chủ. Tôi đã hy vọng rằng tôi có thể có một máy chủ chính xử lý mọi thứ trừ các tệp tĩnh và sau đó có một vài máy chủ tệp tĩnh. Tôi cũng đọc được rằng đây là loại 'cân bằng tải của người nghèo', và thật tuyệt khi có thứ gì đó tinh vi hơn một chút.
Trả lại máy chủ trực tiếp:
- Nó có vẻ thực sự phức tạp, nhưng có thể là một lựa chọn tốt. Tôi vẫn có thể gửi một số URL nhất định đến một số máy chủ nhất định chứ? Giống như ngay bây giờ với HAProxy, mọi URL kết thúc trong phần mở rộng tệp bên phải được gửi tới Lighttpd, trong khi các phần mở rộng khác được gửi tới Apache. Vì vậy, tôi sẽ cần một cái gì đó tương tự. Giống như, tất cả các yêu cầu php được xử lý bởi cùng một máy chủ đang chạy phần mềm cân bằng, trong khi tất cả các yêu cầu jpg được gửi đến nhiều máy chủ.
Lý tưởng nhất là nếu HAProxy hỗ trợ Direct Server Return, thì vấn đề của tôi sẽ được giải quyết. Tôi cũng không muốn sử dụng CDN, vì chúng thực sự đắt tiền và đây chỉ là một dự án phụ.
Bạn có hiểu vấn đề của tôi không? Hãy cho tôi biết nếu tôi không giải thích điều gì đó đúng hoặc nếu bạn cần thêm thông tin.