阻擋 MJ12bot 惡意蜘蛛訪問

阻擋 MJ12bot 惡意蜘蛛訪問

MJ12bot 蜘蛛是一隻來自英國的搜索引擎網站,照理說搜索引擎的蜘蛛是不該擋掉的,如果你用到一個小記憶體或 CPU 很爛的 VPS,一下子就會被 MJ12bot 蜘蛛搞掛掉;他不像一般正常的 Googlebot,文件爬完後就離開,MJ12bot 一來就是好幾個小時,造成服務器極大的壓力。

如下圖可見,MJ12bot 蜘蛛可以造成 CPU 負載極高,服務器資源被耗光。

Webinoly 安裝 VPS 教學系列文章:

1. Webinoly 快速安裝 WordPress 教學
2. Webinoly 安裝後如何更改 PHP 版本
3. FastCGI Cache 快取 WooCommerce 的問題
4. Webinoly 的 Zend Opcache 性能優化
5. Webinoly 的 Memcached 性能優化
6. 阻擋 MJ12bot 惡意蜘蛛訪問
7. Webinoly 安裝 VPS 教學

CPU Graphs
Linode CPU Graphs

Traffic Graphs
Linode 流量 Graphs

使用 Nginx conf 文件,將下方的設置存為 agent_bot.conf 文件,或直接添加在 nginx.conf 文件的 server 段配置裡:

存為 agent_bot.conf 文件,用 SFTP 上傳到 /var/ www/yungke.me/conf/nginx 資料夾下。

重啟 Nginx 程序

代碼的作用:

這段代碼的作用是 Nginx 檢測到相對應的條件,就把這個請求直接轉出。避免請求數據庫和 PHP 程序,減輕服務器的處理負擔。由於 Nginx 處理靜態內容的效率很高,所以可以最大限度的避免服務器資源被耗光。

自己模擬蜘蛛爬取:

回應:

回應為 HTTP/1.1 101,已經成功將 mj12bot 導向到 101。

回應:

正常的好蜘蛛爬取,回應 HTTP/1.1 200 OK,表示可以正常爬取你的網站。

其他的問題:

  • 如果你發現用了以上代碼後,有些功能失靈,那麼就檢查下過濾的關鍵詞。如果你想過濾更多的內容也可以加入更多的關鍵詞。
  • 還有就是加入 pingback 過濾請求,可以阻擋比較低能 CC 請求,但是如果你的服務器比較低階。比如你的服務器的 CPU 不夠力 ,那麼還是極其容易 Nginx 佔用到 CPU 100% 而導致網站無法訪問,所以最終是拼服務器的性能。
  • 不管 Nginx 回應是 403 還是 101,都需要 Nginx 給出處理和回應,雖然避開了 MySQL 及 PHP 其實結果還是要用到 CPU,CPU 性能不能太弱。

參考文件:
Anti Bad Bots and Crawlers by User Agent


Sending
User Rating 5 (7 votes)

發表迴響

Required fields are marked *.


%d 位部落客按了讚: