在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匹配规则一样。只要匹配命中,就不往下匹配。
原文地址:http://llzdwyp.blog.51cto.com/6140981/1694230