Bảo vệ và giảm tải cho server
Bài viết tổng quan của mình về tối ưu tốc độ cho server đã nhận được khá nhiều sự quan tâm từ mọi người. Việc đó đã có nhiều công đoạn, tuy nhiên trong quá trình vận hành một website, chúng ta sẽ gặp một số tình huống khiến cho server phải vận động nhiều hơn, hoặc hoạt động một cách bất thường. Ví dụ:
- Có nhiều client tương tác cùng lúc với server.
- Có những client chỉ giới hạn tương tác với các chức năng được website đưa ra, cùng với những loại thông tin đầu vào được chức năng đó mong đợi để xử lý. Đó là những yêu cầu bình thường. Đối với các yêu cầu như vậy, ban đầu cần tối ưu lại server (và cả mã nguồn).
- Nhưng cũng không thiếu những client gửi những yêu cầu chứa thông tin mà chức năng đó của website không mong đợi được nhận, đó là những yêu cầu bất thường.
- Có một client bị thâu tóm và điều khiển bởi một người hoặc tổ chức nào đó, gửi đến server một loại yêu cầu bất thường khác. Nó có thể không chứa thông tin gì đặc biệt, nhưng được gửi liên tục với tốc độ cao, khiến server nằm trong trạng thái bận trong một thời gian dài, không thể đáp ứng yêu cầu từ các client khác. Loại yêu cầu đó là tấn công từ chối dịch vụ (denial of service – DoS). Mở rộng hơn là tấn công từ chối dịch vụ phân tán (distributed denial of service – DDoS), được thực hiện bởi nhiều client khác nhau.
- Có nhiều client đến từ nhiều quốc gia khác nhau, có vẻ quan tâm đến nội dung của website. Điều này có thể xảy ra nếu website có nhiều thứ tiếng, hoặc khi một trang được chia sẻ tại một cộng đồng sử dụng ngôn ngữ khác.
Trong những hoàn cảnh như vậy, chúng ta cần đến những giải pháp bảo vệ cho server, góp phần làm cho server bớt phải tải nặng đi. Ngoài ra mình cũng giới thiệu sâu hơn về một số cách khác cũng trực tiếp giảm tải nhưng lại không bảo vệ cho server.