• Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫


    从Apache2.2.X到Apache2.4.X,在配置上稍微有点不同,需要特别注意。现在记录下关于访问控制的配置。

    经过苦苦搜索,终于配置成功。参考了这篇文章:http://www.cnblogs.com/leoyu/p/apache24_use_require_for_access_control_by_ip_and_useragent.html

    关于Location配置的灵感,是从这篇文章看到的:http://www.bubuko.com/infodetail-336400.html

    上文虽然有点乱,但是有个片段提醒到我:

    #禁止所有非法域名
    <VirtualHost *:80>
        ServerName 服务器ip
        ServerAlias *
        <Location />
            Order Allow,Deny
            Deny from all
        </Location>
    </VirtualHost>
    211.147.235.10这个IP太讨厌了,使用"WhatsUp_Gold/7.0"来扫我的网站。所以决定屏蔽掉。

    在需要进行访问控制的地方,比如VirtualHost或者Directory,加入Location元素

        <Location / > 
            SetEnvIfNoCase User-Agent ".*(FeedDemon|JikeSpider|AskTbFXTV|CrawlDaddy|Feedly|Swiftbot|ZmEu|oBot|WhatsUp).*" BADBOT    
            SetEnvIfNoCase User-Agent "brandwatch" BADBOT
            SetEnvIfNoCase User-Agent "rogerbot" BADBOT
            <RequireAll>
             Require all  granted
             Require not env BADBOT
             Require not ip 211.147.235.10
            </RequireAll>
        </Location>

    其它require访问控制指令用法如下

    Require all granted #允许所有
    Require all denied #拒绝所有
    Require env env-var [env-var] ... #允许匹配环境变量中任意一个
    Require method http-method [http-method] ... #允许特定的HTTP方法(GET/POST/HEAD/OPTIONS)
    Require expr expression #允许,表达式为true
    Require user userid [ userid ] ... #允许特定用户
    Require group group-name [group-name] ... #允许特定用户组
    Require valid-user # #允许,有效用户
    Require ip 192.100 192.168.100 192.168.100.5 #允许特定IP或IP段,多个IP或IP段间使用空格分隔
  • 相关阅读:
    BSGS算法(大步小步算法)
    UVA-11426【GCD
    UVA-1637【Double Patience】(概率dp)
    UVA-11174【Stand in a Line】
    About
    51nod 1355 斐波那契的最小公倍数
    CodeForces
    CodeForces
    CodeForces
    CodeForces 901C Bipartite Segments
  • 原文地址:https://www.cnblogs.com/luodengxiong/p/5469472.html
Copyright © 2020-2023  润新知