在nginx的访问记录时,发现有几个IP大量的访问攻击网站,此时我们可以通过访问控制来,拒绝指定IP的访问请求。实现服务器减压。

也可以指定特定的IP来访问论坛的管理中心。这样比用户认证更安全好用。

 server_name  www.wyp.com www.llzdwyp.com www.llzd.com;

    if ($host != 'www.llzdwyp.com')

    {

        rewrite ^/(.*)$ http://www.llzdwyp.com/$1 permanent;

}

    index index.html index.htm index.php;

    root /usr/local/discuz;

    access_log /tmp/access.log combined_realip;

    location ~ .*admin\.php$ {

         auth_basic "wyp auth";

         auth_basic_user_file /usr/local/nginx/.htpasswd;

         include fastcgi_params;

         fastcgi_pass unix:/tmp/wyp.sock;

         fastcgi_index index.php;

         fastcgi_param SCRIPT_FILENAME /usr/local/discuz$fastcgi_script_name;

}

上面是原始配置,可以更改为

 server_name  www.wyp.com www.llzdwyp.com www.llzd.com;

    if ($host != 'www.llzdwyp.com')

    {

        rewrite ^/(.*)$ http://www.llzdwyp.com/$1 permanent;

}

    index index.html index.htm index.php;

    root /usr/local/discuz;

    access_log /tmp/access.log combined_realip;

    

    deny 127.0.0.1;                   #全局配置,这里是黑名单IP

    deny 192.168.1.0/24;              #全局配置,这里是黑名单IP网段

    location ~ .*admin\.php$          #去掉用户认证,做白名单

{

         allow 127.0.0.1;             #局部配置,这里是白名单

         deny all;                    #局部配置,这里是白名单

         include fastcgi_params;

         fastcgi_pass unix:/tmp/wyp.sock;

         fastcgi_index index.php;

         fastcgi_param SCRIPT_FILENAME /usr/local/discuz$fastcgi_script_name;

}


注意:nginx的deny和allow与apache不一样,不分先后顺序,和数通ACL匹配规则一样。只要匹配命中,就不往下匹配。