2009-03-06 23 views
7

Apache làm cách nào để xử lý the c10k problem trong điều kiện bình thường? Nói khi chạy các tập lệnh rất nhỏ với ít dữ liệu, hoặc tôi có cần mở rộng quy mô nếu tôi sử dụng Apache không?Apache và c10k

Trong nền nâng hạng nặng được thực hiện bởi một vài máy chủ chạy phần mềm chuyên biệt xử lý các yêu cầu nhưng tôi muốn sử dụng Apache làm mặt trước. Đây có phải là kế hoạch khả thi không?

+0

Cảm ơn bạn đã liên kết. Từ điện thoại tôi không thể làm điều đó –

Trả lời

2

Tôi giả sử bạn có thể đã xem this data, nhưng nếu không, nó có thể cung cấp cho bạn một số ý tưởng.

+1

Thông tin tốt, và tôi rất thích thttpd rất nhiều (tôi đã sử dụng nó một vài lần trong 8 năm qua). Tuy nhiên, cần lưu ý rằng bảng thông tin bạn liệt kê đã hơn mười tuổi. –

+1

Trang đó nói "cập nhật lần cuối vào năm 1998" ... có ai đã thực hiện bất kỳ lệnh cấm tương tự nào kể từ đó không? –

8

Tôi xem Apache là máy chủ gốc hơn - chạy một cái gì đó như mod_php hoặc mod_perl để tạo nội dung và thông minh về định tuyến cho hệ thống thích hợp.

Nếu bạn đang nhận được hàng nghìn lượt truy cập đồng thời ở mặt trước trang web, với kết hợp các loại dữ liệu (tĩnh và động) được trả lại, bạn có thể thấy hữu ích khi đặt một hệ thống được tối ưu hóa hơn trước mặt . Vấn đề sau tối ưu hóa cổ điển với Apache không tạo ra nội dung động (hoặc ít nhất, có thể được tối ưu hóa cho đầu trong quá trình), nhưng chỉ đơn giản là chờ cho một khách hàng chậm để có thể nhận được các byte mà đang được gửi. Do đó, nó có thể là một lợi thế đáng kể để đặt proxy ngược, dưới dạng Squid hoặc Nginx, trước máy chủ để tiếp nhận việc 'cho ăn thìa' của các máy khách mạng chậm, đồng thời cho phép sản xuất nội dung diễn ra đầy đủ tốc độ, và ở tốc độ mạng cục bộ - 100Mb/giây hoặc thậm chí tốc độ gigabit - nếu nó thậm chí phải đi qua mạng.

+0

cách tiếp cận rất thú vị! Bạn có biết nơi tôi có thể đi tìm những lời khuyên thực tế hơn như thế này không? –

1

Các bạn hãy tưởng tượng rằng bạn đang chạy máy chủ web có kết nối 10K (đồng thời). Lam thê nao điêu đo co thể?

  • Bạn đã có nhiều kết nối nhiều lần cho mỗi thứ hai

    • Nội dung động

      Bạn có chắc chắn rằng CPU của bạn có thể xử lý nhiều phiên PHP cho ví dụ? Tôi đoán không, vậy tại sao bạn lại nghĩ về vấn đề C10K? : D

    • nội dung tĩnh - file nhỏ

      Và vẫn soo nhiều kết nối? Trên máy chủ đơn? Có thể bạn đã gặp sự cố với mạng/thông lượng quá hoặc bạn là đối thủ cạnh tranh trong tương lai của Google. Sử dụng lighttpd giải quyết vấn đề C10K và ổn định - ánh sáng bay. Việc sử dụng Apache chỉ cho các tệp tĩnh cho các trang web lớn là hiển nhiên.

  • Khách hàng của bạn đang tải về tập tin lớn trong một thời gian lớn - nội dung tĩnh

    • ISO hình ảnh, tài liệu lưu trữ vv

      Nếu bạn đang làm việc đó thông qua máy chủ web - FTP có thể phù hợp hơn.

    • video trực tuyến

      Sử dụng lighttpd hoặc phần mềm chuyên dụng. Và vân vân ... Còn các nguồn lực khác thì sao?

Tôi đang sử dụng Linux Virtual Server như cân bằng tải ở phía trước máy chủ apache (với các bản vá lỗi cụ thể cho LVS-NAT) và tôi hạnh phúc :) chuỗi Đây là một câu trả lời bạn muốn nghe .

+1

bạn có thể muốn giảm bớt ngôn ngữ một chút - có xu hướng thu hút cờ vv Và câu trả lời tự động xóa sẽ không giúp OP hoặc làm công lý cho thời gian của bạn trong việc trả lời nó. –

+0

c10k trở thành một cơn đau khi kịch bản kiddies sử dụng slowloris.pl ... – jpic

+0

sử dụng giá trị thời gian chờ tcp thấp và keepalive và bạn sẽ không có vấn đề này. dù sao đi nữa, bạn sẽ gặp vấn đề tương tự trên các máy chủ khác, trước khi các gói tin sẽ đến được nó :) – GioMac

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