面对垃圾留言和暴力破解,我们可以封禁IP,前文介绍过Apache环境使用.htacess来屏蔽IP,Nginx也可以做到。前提是我们已经搭建好了LNMP环境。
我们来到/usr/local/nginx/conf/vhost网站目录,具体路径可能有点区别,可以用whereis nginx找到你的nginx网站目录。打开vhost下nginx.conf配置文件,找到server然后在server"{}",在这个大括号内加入deny IP地址是限制某IP地址访问;allow IP地址是只允许某IP地址访问。
server {
listen 8080;
#server_name localhost;
server_name 182.243.41.257;
root "D:/qiPaiBackend/backend/web";
error_page 500 502 503 504 /50x.html;
# 配置ip限制策略
# 允许部分ip访问
allow 182.243.41.257;
allow 127.0.0.1;
# 禁止其余ip访问
deny all;
location = /50x.html {
root html;
}
location / {
index index.php index.html error/index.html;
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_connect_timeout 600;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
include fastcgi_params;
}
}
上图所示是屏蔽单个IP,注意后面的分号,修改保存后重载nginx服务service nginx reload。如果生效该IP访问网站会出现403 forbidden。
#封IP段比如从192.0.0.1到192.0.0.254的命令是
deny 192.0.0.0/24这其实就是把192.0.0.x这整个C端屏蔽了。
还有一种方法,在nginx的conf目录下面新建配置文件为blocksip.conf:
输入要屏蔽的地址deny 24.112.16.30; 保存一下。
在nginx的配置文件nginx.conf中加入:include blocksip.conf;
重启一下nginx的服务:service nginx reload或/usr/local/nginx/sbin/nginx -s reload 就可以生效了。
blocksip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问:
# block all ips
deny all;
# allow all ips
allow all;
如果你想实现这样的应用,除了几个IP外,其他全部拒绝,在ip.balcklist中这样写
allow 1.1.1.1;
allow 1.1.1.2;
deny all;