[Nginx](轉(zhuǎn)載)使用Nginx過濾網(wǎng)絡(luò)爬蟲

現(xiàn)在的網(wǎng)絡(luò)爬蟲越來越多,有很多爬蟲都是初學(xué)者寫的,和搜索引擎的爬蟲不一樣,他們不懂如何控制速度,結(jié)果往往大量消耗服務(wù)器資源,導(dǎo)致帶寬白白浪費(fèi)了。

其實Nginx可以非常容易地根據(jù)User-Agent過濾請求,我們只需要在需要URL入口位置通過一個簡單的正則表達(dá)式就可以過濾不符合要求的爬蟲請求:

...
location / {
    if ($http_user_agent ~* "python|curl|java|wget|httpclient|okhttp") {
          return 503;
    }
    # 正常處理
    ...
}
...

變量$http_user_agent是一個可以直接在location中引用的Nginx變量。~*表示不區(qū)分大小寫的正則匹配,通過python就可以過濾掉80%的Python爬蟲。

來源連接

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 上一篇《WEB請求處理一:瀏覽器請求發(fā)起處理》,我們講述了瀏覽器端請求發(fā)起過程,通過DNS域名解析服務(wù)器IP,并建...
    七寸知架構(gòu)閱讀 81,229評論 21 356
  • 配置運(yùn)行Nginx服務(wù)器用戶(組) 用于配置運(yùn)行Nginx服務(wù)器用戶(組)的指令是user,其語法格式為: use...
    吃瓜的東閱讀 4,537評論 0 41
  • 《老男孩Linux運(yùn)維》筆記 隱藏Nginx軟件版本號 一般來說,軟件的漏洞都和版本有關(guān)。因此要盡量隱藏對訪問用戶...
    Zhang21閱讀 3,695評論 0 28
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,947評論 18 139
  • Nginx簡介 解決基于進(jìn)程模型產(chǎn)生的C10K問題,請求時即使無狀態(tài)連接如web服務(wù)都無法達(dá)到并發(fā)響應(yīng)量級一萬的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,079評論 0 9