2011-11-21 30 views
10

Tôi đang cố gắng tối ưu hóa ứng dụng web của mình bằng cách sử dụng API tốc độ trang của Google, điều này đã làm nổi bật sự vắng mặt của "Keep-alive" trong tiêu đề phản hồi HTTP của tôi làm điểm yếu tốc độ trang lớn.Có thể bật Keep-alive với bộ cân bằng tải không?

Khi nói chuyện với những người quản trị và quản trị viên của tôi, họ đã nói với tôi rằng việc sử dụng Keep-alive trên trang web là không thể vì chúng tôi sử dụng bộ cân bằng tải.

Tôi tự hỏi, điều này có chính xác không? Có cân bằng tải có hỗ trợ Keep-alive không? Có vẻ lạ với tôi rằng API tốc độ trang sẽ phàn nàn về Keep-alive nếu không thể sử dụng với cân bằng tải vì tôi sẽ tưởng tượng một số lượng ứng dụng và trang web lớn sử dụng cân bằng tải.

Cảm ơn!

+0

Yêu cầu họ chuyển sang HAProxy và bật kết nối HTTP liên tục. :) – bzlm

+0

Điều này thực sự tạo ra sự khác biệt về hiệu suất hay chỉ cần giữ cho sự sống trong các tiêu đề phản hồi? –

+0

Nếu bạn không biết chính xác các kết nối HTTP liên tục là gì, bạn không nên yêu cầu người quản trị phía sau và quản trị viên của bạn thực hiện nó. – bzlm

Trả lời

5

Tôi không biết bạn có loại cân bằng tải nào ... nhưng tôi không nghĩ rằng nó sẽ ngăn chặn việc sử dụng các kết nối liên tục.

Trình cân bằng tải sẽ xử lý từng kết nối đến một trong các máy chủ phụ trợ. Bây giờ đối với mỗi đối tượng, trình duyệt cần tạo một kết nối mới chỉ để lấy đối tượng đó (ví dụ như tất cả các hình ảnh nhỏ). Việc thiết lập và đóng các kết nối TCP mất một thời gian. Đây là lý do tại sao Tốc độ trang Google đề xuất bật tính năng giữ chân. Một tùy chọn khác là đặt tất cả các hình ảnh nhỏ của bạn vào một hình ảnh lớn và sử dụng các sprites css để hiển thị một phần của nó trên các vị trí khác nhau trên trang của bạn.

Nhưng quay lại bộ cân bằng tải. Nếu bạn có cân bằng tải mạng, nó sẽ hoạt động mà không có bất kỳ câu hỏi nào - nó sẽ chỉ chuyển hướng kết nối TCP đến một trong các máy chủ phụ trợ. Nếu bạn có bộ cân bằng tải HTTP, nó sẽ chấp nhận kết nối, đọc yêu cầu, gửi yêu cầu đến máy chủ phụ trợ, đợi nó trả lời và gửi câu trả lời lại cho trình duyệt. Nếu bạn bật tiếp tục, trình cân bằng tải sẽ chuyển tiếp yêu cầu tiếp theo mà nó nhận được qua cùng một kết nối.

Đối với các trang động bạn không cần giữ chân. Keep-alive chủ yếu là hữu ích cho nội dung tĩnh (js, images, css) như đối với mỗi trang html bạn thường có nhiều hơn 10 đối tượng tĩnh. Vì vậy, tôi sẽ đề nghị tiếp tục phục vụ máng html mà cân bằng tải và phục vụ nội dung tĩnh trên tên máy chủ khác nhau (static.example.com).

Các vấn đề liên quan