Trình thu thập thông tin trên web


8

Trang web của tôi đang được các webspiders của Google thực hiện. Google được hoan nghênh lập chỉ mục trang web của tôi, nhưng đôi khi nó đang truy vấn một tagcloud trên trang web của tôi nhanh hơn máy chủ web của tôi có thể tạo ra kết quả, khiến máy chủ web của tôi hết tài nguyên.

Làm cách nào tôi có thể giới hạn quyền truy cập vào máy chủ web của mình theo cách mà khách truy cập bình thường không bị ảnh hưởng?

robot.txt không có tùy chọn vì nó sẽ chặn toàn bộ trang web khỏi bị lập chỉ mục.

iptables -m recent là khó khăn, bởi vì một số trang có rất nhiều hình ảnh hoặc tệp dữ liệu khác và các kích hoạt 'gần đây' trên những trang đó (thường là trình tổng hợp RSS của tôi, tải hình ảnh và nguồn cấp dữ liệu).

iptables -m limit có cùng nhược điểm và trên hết, tôi không thể chọn lọc theo từng địa chỉ nguồn IP.

Làm cách nào tôi có thể giới hạn khách truy cập khiến tải máy chủ của tôi tăng quá cao?

Tôi đang chạy apache2 trên máy chủ Ubuntu trong VirtualBox VM.


1
Bạn có thể sử dụng các công cụ Webmaster để giảm tốc độ thu thập dữ liệu. Xem support.google.com/webmasters/bin/ Kẻ
derobert

Câu trả lời:


5

Hãy thử mô-đun Apache mod_qos . Phiên bản hiện tại có các cơ chế kiểm soát sau.

  • Số lượng yêu cầu đồng thời tối đa đến một vị trí / tài nguyên (URL) hoặc máy chủ ảo.
  • Giới hạn băng thông, chẳng hạn như số lượng yêu cầu tối đa được phép mỗi giây đối với một URL hoặc tối đa / tối thiểu của kbyte được tải xuống mỗi giây.
  • Giới hạn số lượng sự kiện yêu cầu mỗi giây (điều kiện yêu cầu đặc biệt). Nó cũng có thể "phát hiện" những người rất quan trọng (VIP) có thể truy cập máy chủ web mà không có hoặc có ít hạn chế hơn.
  • Dòng yêu cầu chung và bộ lọc tiêu đề để từ chối các hoạt động trái phép.
  • Yêu cầu giới hạn và lọc dữ liệu cơ thể (yêu cầu mod_parp).
  • Các hạn chế về cấp độ kết nối TCP, ví dụ: số lượng kết nối được phép tối đa từ một địa chỉ nguồn IP duy nhất hoặc điều khiển duy trì động.
  • Thích địa chỉ IP đã biết khi máy chủ hết kết nối TCP miễn phí.

Mẫu quy tắc có điều kiện này từ tài liệu sẽ giúp bạn đi đúng hướng.

# set the conditional variable to spider if detecting a
# "slurp" or "googlebot" search engine:
BrowserMatch             "slurp"                  QS_Cond=spider
BrowserMatch             "googlebot"              QS_Cond=spider

# limits the number of concurrent requests to two applications
# (/app/b and /app/c) to 300 but does not allow access by a "spider"
# if the number of concurrent requests exceeds the limit of 10:
QS_LocRequestLimitMatch       "^(/app/b/|/app/c/).*$"  300
QS_CondLocRequestLimitMatch   "^(/app/b/|/app/c/).*$"  10   spider

Trông phức tạp hơn một chút so với những gì tôi mong đợi vào một buổi tối thứ sáu khi thưởng thức bia Bỉ ... Phải xem xét nó vào ngày mai. Trông đầy hứa hẹn với lông mày và mọi thứ. Nghĩ về nó ... sẽ rất tuyệt nếu nó tự động bất kỳ máy chủ / người dùng nào yêu cầu robot.txt: o) Thnx Uther
jippie

Thưởng thức bia đó!
George M

OK, nó trông khá đơn giản. Đã triển khai nó để xem liệu máy chủ web của tôi có thể theo kịp không.
jippie
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.