Việc hạn chế request từ một client vào server sẽ giảm được việc ddos vào trang xử lý, giảm việc crawl dữ liệu từ các machine. Tôi sẽ hướng dẫn các bạn sử dụng module limit_req của nginx để thực hiện việc này
Ví dụ config limit_req
http { limit_req_zone $binary_remote_addr zone=fap:10m rate=1r/s; ... server { ... location /search/ { limit_req zone=fap burst=5; }
Step 1: Khai báo zone trong http {}
Cấu hình trong file nginx.conf
limit_req_zone $binary_remote_addr zone=fap:10m rate=1r/s;
*Giải thích:
zone=fap:10m Phân bổ 10m cho việc lưu trữ địa chỉ kết nối tại vùng "fap". Vì ở đây sử dụng $binary_remote_addr thay cho $remote_addr nên kích thước trạng thái giảm còn 64B. 1MB lưu được 16000 trạng thái kết nối. 10MB thì 160000 kết nối. Nếu quá thì sẽ bắn ra lỗi 503: Service Temporarily Unavailable
rate=1r/s cường độ request trung bình 1 request trên 1 giây. Có thể dùng đơn vị thời gian khác, ví dụ 30r/m
Step 2: Khai báo trong location {}
Bạn có thể dùng trong / hay chỉ mục bạn muốn giới hạn
limit_req zone=fap burst=2;
Ở đây mình dùng zone fap đã được thiết lập ở trên, thêm cái burst=2 tức nếu trong vòng 1s có nhiều hơn 2 request liên tục (burst mode) thì sẽ báo lỗi 503
Step 3: Tạo trang báo lỗi 503:
error_page 503 /forbid.html;....location /forbid.html {
root /usr/share/nginx/html/50x ;
expires 7d;
}
Việc chặn này hiện tại chặn hết cả bot, mà mình không muốn bot lại bị chặn. Thêm thắt tí cho nó chạy ngon hơn nhể?
trong html {} thêm cái zone freebot:
limit_req_zone $freebots zone=bots:10m rate=1r/s;
Trong location / thì cấu hình dư vầy. Muốn whitelist thêm IP cũng xử lý tương tự.
set $bot ";
if ($http_user_agent !~* (google|bing|yandex|msnbot) ) {
set $freebots $binary_remote_addr;
}
limit_req zone=bots burst=2 nodelay;
Xong. Ngon chưa?
Blog Archive
Đặt vòng
Counter view
Popular Posts
-
Dương Quá tên thật là Dương To Quá, nhưng nếu để cái tên ấy mà hành tẩu giang hồ thì dễ bị đám nương nữ đa dâm quấy rối, làm phiền; dễ bị đ...
-
Ở đâu cái giống đàn bà Sống trên trần thế thật là khổ đau Từ nay cho đến về sau Đàn ông hạnh phúc với nhau được rồi Tình yêu cũng chỉ m...
-
MEATV là phiên bản thử nghiệm của Công ty Điện toán và Truyền số liệu VDC trên nền website tại địa chỉ MegaTV Đây là dịch vụ xem phim và tr...
-
Mở 1 page của người mà bạn muốn lấy album, và lấy số id của họ Sau đó bạn vào địa chỉ https://picasaweb.google.com/số-id-bạn-vừa-lấy-đư...
-
Trên Mac OS việc sử dụng Terminal mặc định của hệ điều hành khá là thọt do ít tính nă...
-
Việc hạn chế request từ một client vào server sẽ giảm được việc ddos vào trang xử lý, giảm việc crawl dữ liệu từ các machine. Tôi sẽ hướng d...
-
Tổng hợp 30 kiểu ngủ bựa nhất của bọn mèo Nằm ngửa đắp chăn Ngủ trong ly 2 anh em Phơi ...
-
Chùm ảnh về lũ mèo có thể ngồi/nằm bất cứ chỗ nào chúng cho là vừa với chúng Maru Có vẻ gần đây mình bị tăng cân ...
-
Nếu bạn cảm thấy không an toàn với spam bot diễn đàn của bạn tới từ nước ngoài. Bạn có thể GTFO chúng từ tầng firewall nhưng mình cản ở tầng...
-
abc
Tags
- aircrack (1)
- Backtrack (1)
- bind ip (1)
- cat (2)
- crack wireless (1)
- crawl (1)
- debian (1)
- Games (1)
- Google Plus (1)
- Google+ (1)
- kitten (2)
- lấy album ảnh (1)
- limit request (1)
- limit_req (1)
- limit_req_zone (1)
- Mario (1)
- megatv (1)
- mèo (2)
- meow (1)
- mrtuan (1)
- nginx (1)
- ngủ (1)
- như lợn meow (1)
- server (1)
- sits (1)
- sleepy (1)
- tv (1)
- ubuntu (1)
- vdc (1)
- Webpicasa (1)
- WEP (1)