• CentosServerNginx之禁止网络爬虫


    “网路爬虫”在日常维护服务的过程中,是一个常见的问题。它说:“我要一步一步往上爬,爬呀爬呀爬到服务Game Over”!呵呵,因为遇到了,所以分享一下,处理网络爬虫的方法(这里主要是在Nginx上,做禁止爬虫).
    常见问题:
    1.网络堵塞丢包严重(上下行数据异常,排除DDOS攻击,服务器中毒。异常下载,数据更新)
    2.服务器负载过高,CPU几乎跑满(针对相应的服务配置而定);
    3.服务基本瘫痪,路由瘫痪;
    4.查看日志发现大量的异常访问日志
     
        思路:先查看日志--分析日志--针对相关信息来源做限制(防火墙,Nginx本身都可以);
     
    具体步骤:
    一.先查看日志
         cat logs/www.ready.log |grep spider -c (看有爬虫标志的访问次数)
         cat  logs/www.ready.log |wc (合计总页面的访问次数)
     
         cat  logs/www.ready.log |grep spider|awk '{print $1}'|sort -n|uniq -c|sort -nr   (查看爬虫的IP地址来源)
         cat  logs/www.ready.log |awk '{print $1 " " substr($4,14,5)}'|sort -n|uniq -c|sort -nr|head -20(_列出1分钟内的前20位IP地址)
         cat  logs/www.ready.log |grep ip (列出出现较多的IP地址,这个可以结合上面的命令使用。)
     
    二.分析日志
    晓得爬虫爬过那些内容,是什么爬虫爬的。什么时候爬的
    常见的爬虫有Google,Baidu,Yahoo这些(在下面的Nginx的http_user_agent配置处,有一些常见的爬虫)
     
    三.修改防火墙策略,毙掉这个好奇的爬虫IP
    vim /etc/sysconfig/iptables
     
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 61.33.22.1/24 -j REJECT 
            -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 61.22.1.1/24 -j REJECT
            重新启动iptables生效。
     
    四.关于Nginx上的http_user_agent 的设置也可以很好的防范
     
    具体的配置信息如下:
     
    server { 
    listen 80; 
    server_name www.ready.com; 
    if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") 
    return 403; 
    location ~ ^/(.*)$ { 
    proxy_pass http://localhost:80; 
    proxy_redirect off; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    client_max_body_size 10m; 
    client_body_buffer_size 128k; 
            proxy_connect_timeout 90; 
            proxy_send_timeout 90; 
            proxy_read_timeout 90; 
            proxy_buffer_size 4k; 
            proxy_buffers 4 32k; 
            proxy_busy_buffers_size 64k;                               proxy_temp_file_write_size 64k; 
     } 
    error_page 500 502 503 504 /50x.html; 
      location = /50x.html { root html; 
     } 
     
     }
  • 相关阅读:
    【洛谷5052】[COCI2017-2018#7] Go(区间DP)
    【洛谷6564】[POI2007] 堆积木KLO(树状数组优化DP)
    【洛谷6940】[ICPC2017 WF] Visual Python++(扫描线)
    【洛谷6939】[ICPC2017 WF] Tarot Sham Boast(PGF结论题)
    【洛谷4123】[CQOI2016] 不同的最小割(最小割树)
    初学最小割树
    【洛谷6122】[NEERC2016] Mole Tunnels(模拟费用流)
    【洛谷6936】[ICPC2017 WF] Scenery(思维)
    【洛谷2805】[NOI2009] 植物大战僵尸(最大权闭合子图)
    【洛谷1393】Mivik 的标题(容斥+border性质)
  • 原文地址:https://www.cnblogs.com/kgdxpr/p/2443348.html
Copyright © 2020-2023  润新知