Nguyên nhân của quá tải web server
1. Web server không khả dụng – Điều này có thể xảy ra trong quá trình nâng cấp, cập nhật…, sự cố phần cứng hoặc phần mềm, sự cố back-end,…
2. Lưu lượng truy cập web quá nhiều – Số lượng quá lớn khách hàng đang kết nối với trang web trong một khoảng thời gian ngắn có thể gây quá tải máy chủ web. Ví dụ trang web của trường đại học không thể hiển thị vào mỗi đợt công bố kết quả học kỳ bởi toàn bộ sinh viên trong trường đã gây ra sự tăng vọt đột ngột truy cập một lúc.
3. Worms và XSS virus máy tính – Chúng sẽ tạo ra một lưu lượng truy cập không thường xuyên do hàng triệu máy tính, trình duyệt hoặc máy chủ web bị nhiễm.
4. Tấn công DoS/DDoS – Tấn công từ chối dịch vụ hoặc tấn công từ chối dịch vụ phân tán là nỗ lực làm máy tính hoặc thiết bị mạng không còn khả dụng với người dùng. Nếu một hệ thống dễ bị tổn thương, nó sẽ có nguy cơ bị nhắm mục tiêu bởi nhiều hệ thống khác. Các hệ thống khác này bị kiểm soát hoàn toàn bởi các hacker đã xâm phạm bảo mật hệ thống bằng cách đoán đúng mật khẩu. Mạng bị tràn ngập bởi các gói làm sập máy chủ dẫn đến việc từ chối các request hợp pháp.
5. Mạng chậm – Các yêu cầu của máy khách được hoàn thành chậm hơn và số lượng kết nối dồn lại và tăng lên rất nhiều đến mức giới hạn của máy chủ.
Dấu hiệu quá tải web server
1. Thời gian phục vụ các yêu cầu bị trì hoãn từ 1s đến vài trăm giây.
2. Nếu web server trả về HTTP error code, chẳng hạn như 500, 502, 503, 504, 408,… đây là các code được trả về trong tình trạng quá tải.
3. Máy chủ web từ chối hoặc reset các kết nối TCP trước khi trả về bất kỳ nội dung nào.
4. Máy chủ chỉ cung cấp một phần nội dung được yêu cầu.
Làm thế nào để ngăn chặn quá tải web server?
1. Kiểm soát lưu lượng mạng, sử dụng Tường lửa để chặn lưu lượng truy cập không mong muốn đến từ các nguồn IP xấu hoặc có các pattern không hoàn thiện. Trình quản lý lưu lượng HTTP có thể được đặt để accept, chuyển hướng hoặc viết lại các yêu cầu có HTTP pattern không tốt. Có thể giảm peak trong mạng sử dụng quản lý băng thông và điều hướng lưu lượng.
2. Sử dụng web cache. Cache giúp tiết kiệm rất nhiều thời gian. Thay vì yêu cầu nội dung từ máy chủ nằm cách xa vị trí gốc của máy khách, nội dung sẽ được lấy từ cache, do đó thời gian phản hồi sẽ nhanh hơn nhiều.
3. Triển khai các tên miền khác nhau để hỗ trợ các nội dung khác nhau bằng cách tách các máy chủ web.
4. Sử dụng các tên miền hoặc server khác nhau để tách các tệp lớn khỏi các tệp vừa và nhỏ, nhằm lưu trữ đầy đủ các tệp nhỏ và vừa và phục vụ đủ các tệp lớn bằng cách sử dụng các cài đặt khác nhau.
5. Sử dụng nhiều máy chủ, mỗi máy chủ sẽ được kết nối với card mạng và địa chỉ IP của chính nó.
6. Sử dụng nhiều máy chủ được sắp xếp cùng nhau phía sau bộ cân bằng tải, như một web server lớn.
7. Kết hợp nhiều thiết bị phần cứng hơn cho mỗi máy chủ giúp cải thiện phần bộ nhớ chính và phụ. Điều chỉnh các tham số hệ điều hành cho dung lượng và phần cứng.
8. Điều chỉnh các chương trình hiệu quả hơn cho các web server, sửa đổi công nghệ nhằm hoạt động trơn tru hơn.
9. Tối ưu nội dung. Nội dung động mất nhiều thời gian hơn so với nội dung trang tĩnh vì chúng thay đổi dựa trên yêu cầu người dùng, vị trí địa lý và được hiển thị tương ứng.
Các phương pháp trên có thể đúng với trường hợp này và cũng có thể lại không tối ưu với trường hợp khác. Tức là các phương pháp phòng ngừa không phải là biện pháp cốt lõi. Phương pháp trial and error mới là chìa khóa để tìm ra được phương pháp nào là phù hợp với máy chủ của bạn.