對爬蟲的限制
不當家不知道柴米貴
以前用彪悍的服務器用習慣了,還真沒有資源窘迫的時候
這個月還早,顯然現有資源已經撐不到月底了
先把常用的600多K文件挪到了七牛的云存儲上
結果一天就跑了2G的流量,這么算再跑5天就廢了
得,偷懶不成,老老實實分析日志
菲彩国际
搜索spider,每頁50條,竟然有好多好多頁的記錄:
看來是被各家的爬蟲給吃掉了。
解決方法
先用robots.txt屏蔽掉國外的蜘蛛:
Disallow: /
User-Agent: Ezooms
Disallow: /
robots的生效需要時間,在生效之前,可以用sae的應用防火墻屏蔽一些IP(非sae用戶參考此文)
不過防火墻是全局的,如果想針對某一個目錄做限定,可以通過config.yaml來實現。
- hostaccess: if(path ~ "/xxx/xxxx/") deny "123.125.71.12 , 123.125.71.31 , 123.125.71.47 , 123.125.71.95 , 220.181.108.76 , 220.181.108.87, 220.181.108.123, 220.181.108.168 , 220.181.108.105 , 220.181.108.109 , 220.181.108.156 , 220.181.108.160 , 220.181.108.99 , 220.181.108.115 , 220.181.108.139 , 220.181.108.143 , 220.181.108.144 , 220.181.108.163 , 220.181.108.159 , 183.60.212.134 , 183.60.213.39 , 183.60.213.29 , 183.60.214.119"
如上所示,一個IP,一個IP的填畢竟太煩了(還要注意空格!)
時間不夠的童鞋(其實是懶)直接干掉整個ip段了事
- hostaccess: if(path ~ "/xxx/xxxx/") deny "123.125.71.0/24 , 220.181.108.0/24 , 183.60.214.0/24 , 183.60.215.0/24"
然后再對漏網之魚,跳回robots.txt,讓他們好好補課。
- rewrite: if(path ~ "/xxx/xxx/" && in_header["User-Agent"] ~ "AhrefsBot" ) goto "http://cnzhongka.com/robots.txt"
如果是單個的php文件,懶得改config.yaml的,也可以用php搞,返回空白頁:
if(substr_count($useragent,"spider")){exit();}
不結尾了,寫結尾太麻煩。
總之,問題解決了。
相關日志:
« 平衡