Hạn chế số người truy cập bằng PHP

Website có lượt truy cập cao là mong muốn của hầu hết những khách hàng thiết kế website. Tuy nhiên, có đôi lúc con số thống kê số lượng truy cập không chỉnh xác bởi sự tấn công của những kẻ phá hoạch. Sự tấn công này làm giảm khả năng đáp ứng yêu cầu từ người dùng và làm ngập lụt hệ thống, khiến website không thể trả lại thông tin theo truy vấn của khách hàng và rõ ràng đây là việc mà không nhà quản trị website nào mong muốn.Để hạn chế tác hại do ngập lụt hệ thống gây ra có nhiều cách như cân bằng tải (load balancing), dựng tường lửa xác định truy cập … Ở đây, N2DGroup giới thiệu với bạn một cách đơn giản để ngăn chặn việc ngập lụt hệ thống bằng cách hạn chế số người truy cập cùng một lúc trên website.

Ví dụ: Khi server của bạn có khả năng đáp ứng tối đa 1.000 lượt truy cập cùng một lúc (giới hạn tối đa), trong trường hợp người truy cập thứ 1.001 truy cập vào website, có thể hệ thống của bạn không đáp ứng được và dẫn đến overload (tương tự như trường hợp treo máy trên máy tính cá nhân) và ảnh hưởng đến 1.000 người đang truy cập. Để hạn chế người truy cập, tránh tình trạng overload như đã nói ở trên, chúng ta có thể giới hạn bằng cách từ người thứ 1.001 trở đi chúng ta không cho phép truy cập website và hiển thị thông báo “Server đang quá tải, vui lòng truy cập sau vài phút”.
Cách thực hiện như sau:


Bạn copy đoạn mã dưới đây cho vào các trang chính của website (index.php chẳng hạn):
<?php
function server_busy
($numer){
if (PHP_OS == ‘Linux’ AND @file_exists(‘/proc/loadavg’) AND $filestuff =@file_get_contents(‘/proc/loadavg’)){
$loadavg = explode(‘ ’, $filestuff);
if (trim($loadavg[0]) > $numer) {
print ‘server busy, quay lại sau….’;
exit(0);
}
}
}

 

$srv = server_busy(1000); // 1000 là số người truy cập tại 1 thời điểm

?>

 

Lưu ý: Phương thức phòng chống overload này chủ yếu dựa trên xử lý truy cập của Apache, trong trường hợp tầng số tấng công cao (Ví dụ : DDOS) thì bản thân Apache cũng không thể xử lý kịp. Trong trường hợp này chúng ta cần một hệ thống phòng thủ dựa trên phần cứng hoặc hệ thống cân bằng tải (load balacing).
Bài viết gốcN2DGroup.COM
  • Fixing
  • 86 Users Found This Useful
Was this answer helpful?

Related Articles

Vào Facebook, upload ảnh dễ dàng với VPN miễn phí

Gần đây nhiều người thường than phiền không thể sử dụng đầy đủ các tính năng của mạng xã hội...

Bảo mật website của bạn với chmod, mã hóa file config

Hiện nay chủ yếu các bạn hầu như đều dùng Shared Hosting,  ít bạn có đủ điều kiện ể thuê VPS hay...

Cách reset password Admin Xenforo thông qua phpMyAdmin

Thông qua email để lấy lại mật khẩu cũng là cách nhanh nhưng đôi khi có nhiều trường hợp mất luôn...

Cache: sự cần thiết cho một website phát triển

Hầu hết mọi người khi xây dựng website đều đặt ra cho mình mục tiêu là website ngày càng phát...

Chrome Remote Desktop là gì và cách sử dụng ứng dụng

Chrome Remote Desktop cho phép bạn truy cập từ xa vào một máy tính từ một máy tính khác qua...