Kinh Nghiệm Chống DDoS – Caching

  • Thread starter Thread starter AdminAdmin is verified member.
  • Start date Start date
Admin

AdminAdmin is verified member.

Well-Known Member
Staff member
Administrator
Một trong những kinh nghiệm trong việc chống DDoS của tôi và cũng là nguyên tắc quan trọng trong việc thiết kế và xây dựng một hệ thống, cũng đồng thời là chìa khóa của việc performance tuning, đó chính là caching. Với một hệ thống cần yêu cầu performance cao thì caching là việc vô cùng cần thiết. Caching sẽ giúp CPU đỡ đi nhiều việc hơn, cũng tiết kiệm được nhiều tài nguyên của hệ thống, giúp hệ thống ổn định hơn và bền bỉ hơn. Vậy cache như thế nào và cache ở đâu ??


- Cache ở những nơi nào cho phép cache và hỗ trợ cache.


- Cache tất cả những gì có thể cache.


Trong mô hình LEMP (Linux + Nginx + PHP + MySQL). Sử dụng XCache, APC hoặc eAccelerator đối với opcode cache, tùy vào trong từng application là gì mà sử dụng extension nào, ví dụ WordPress hoạt động nhanh nhất với Xcache. Ngoài ra còn sử dụng thêm memcached để làm objects cache, memcached cũng hoạt động rất tốt với những application như vBulletin, ngoài ra chúng ta có thể sử dụng memcached chung với Nginx thay cho proxy_cache để cache những static file.


Một điều vô cùng quan trọng nữa là đối với các hệ thống có database lớn, thì MySQL cũng là một thứ vô cùng nguy hiểm bởi lẽ nếu có quá nhiều thông tin cần truy xuất thì MySQL sẽ làm CPU lên 100% ngay tức thì, vì vậy việc cache cho MySQL cũng cần thiết. Rất may mắn là MySQL có support sẵn Query cache, không cần install gì thêm mà chỉ cần enable chức năng đó lên và điều chỉnh các thông số cho thích hợp.


Nếu sử dụng Nginx – PHP-FPM thì các bạn cần sử dụng chức năng fastcgi_cache của Nginx cung cấp, nếu như bên trong không sử dụng memcached hay opcode cache. Ngoài ra còn một số giải pháp khác ví dụ Varnish cũng là một giải pháp front-end rất hữu dành cho việc xây dựng một hệ thống cache cho Webserver.


Hiện nay mô hình tôi đang sử dụng để chạy một forum vBulletin là :


Nginx làm reverse proxy, kết hợp với memcached để cache lại tất cả các static file hoặc là các objects được truy cập nhiều. Bên trong Nginx kết hợp PHP-FPM để run php script, ban đầu tôi sử dụng thêm fastcgi_cache để tăn tốc nhưng sau nghĩ lại không cần thiết nên bỏ đi, với PHP tôi install thêm opcode cache là APC và memcached, forum vBulletin support memcached cho nên chỉ cần enable chức năng đó lên, MySQL tôi cũng enable Query cache để làm việc hiệu quả hơn, hiện nay mô hình này hoạt động rất ổn định và bền bỉ. Tuy nhiên trong tương lai tôi sẽ cố gắng triển khai nhiều mô hình khác, ví dụ Nginx + Apache + mod_php để tăng tốc xử lý PHP.


Caching là việc cần thiết nhưng không phải là duy nhất cần làm. Để xây dựng một hệ thống yêu cầu performance cao, đòi hỏi phải thực hiện rất nhiều công việc trãi dài từ tầng application xuống dưới, và quan trọng hơn là phải đầu tư vào cơ sở hạ tầng phải thật tốt.


Nguồn: XGR
 

Facebook Comments

Similar threads

Admin
Replies
0
Views
1K
AdminAdmin is verified member.
Admin
Admin
Replies
0
Views
3K
AdminAdmin is verified member.
Admin
Admin
Replies
0
Views
2K
AdminAdmin is verified member.
Admin
D
Replies
0
Views
3K
dgtupltn95
D
Back
Top