Có hai chiến lược chung để đối phó với sự gia tăng lưu lượng: tăng công suất và giảm chi phí.
Tăng công suất có nghĩa là tự động mở rộng quy mô, điều mà mọi người đều rất phấn khích khi các đám mây công cộng lần đầu tiên xuất hiện. Theo nghĩa cơ bản nhất của nó, điều này sẽ khởi động nhiều máy chủ web hơn cho bạn dựa trên tải và thêm chúng vào bộ cân bằng tải, nhưng vì có thể gây khó khăn cho việc quản lý, cũng có nhiều giải pháp tự động hơn, như Elastic Beanstalk.
Rắc rối với việc mở rộng công suất tự động là việc mở rộng hóa đơn cũng tự động - lưu lượng truy cập bình thường gấp 10 lần có nghĩa là máy chủ gấp 10 lần nghĩa là bạn phải trả gấp 10 lần. Đó là lý do tại sao, trong khi đó là một chiến lược hữu ích cần ghi nhớ, tôi nghĩ bạn nên luôn bắt đầu bằng cách xem bạn có thể gian lận đến mức nào.
Bằng cách gian lận, ý tôi là bộ nhớ cache, dựa trên ý tưởng rằng hầu hết thời gian bạn có thể cung cấp cho người dùng một chút dữ liệu lỗi thời và họ sẽ không nhận thấy, và điều đó có thể giúp bạn tiết kiệm rất nhiều thời gian. Hãy tưởng tượng rằng bạn có một trang mà bạn quyết định sẽ ổn nếu hết năm giây và nó nhận được 20 req / s. Không có bộ nhớ đệm, bạn đang chạy phép tính đó 1200 lần một phút, trong khi với bộ đệm chỉ là 12. Bạn có thể thấy điều này có thể tạo ra sự khác biệt to lớn như thế nào.
Tất nhiên có nhiều loại bộ nhớ đệm và một trang web thành công sẽ sử dụng một vài trong số chúng. Nhưng đối với trường hợp sử dụng của bạn, có hai lựa chọn khá tốt và dễ dàng.
Đầu tiên là làm cho trang web hoàn toàn tĩnh. Điều này giả định rằng bạn có thể làm như vậy, nhưng nếu bạn có thể, thì bạn chỉ cần Nginx phục vụ trực tiếp html và nó có thể phục vụ hàng tấn yêu cầu mà không phải đổ mồ hôi.
Nếu bạn cần một số mức độ năng động, thì thực hiện một số bộ nhớ đệm toàn trang là một lựa chọn tốt. Nginx có một số khả năng để làm điều này, nhưng tôi thực sự thích Varnish vì tính linh hoạt của nó.
Bất kể tùy chọn hoặc tùy chọn nào bạn đi cùng, hãy đảm bảo bạn thực hiện kiểm tra tải để xác thực rằng bạn đã thiết lập đúng; đôi khi sửa một chỗ làm lộ ra một nút cổ chai mới.