现状说明:
目前应用需要限制个别IP访问平台的网站,网站使用的是Nginx,现在的具体要求如下:1.Nginx的所有站点都不允许x.x.x.x地址访问;2.针对某一个站点www.xxx.com限制xx.xx.xx.xx地址访问;3.针对某一个站点www.xxx.com的某个路径限制x.xx.xx.xx地址访问12345
分析说明
1.针对所有站点都不允许访问的话,需要做全局设置,配置在主配置文件中;2.针对某一个站点的话,只需要在对应站点的conf文件中配置即可;3.针对某个路径的话,只需要在对应站点的location里面配置即可1234
配置示例
1.所有站点统一限制 vim nginx.conf allow x.x.x.x;允许x.x.x.x这个地址访问 deny all;限制所有IP访问 #:除了allow允许的IP外,剩下的全部禁止访问;其次一定是写在server{}外面的,针对全局生效的;2.针对单个站点限制 vim www.xxx.conf server{ server_name www.XXX.com; location ~ / # 不是 ~ /\. { allow xx.xx.xx.xx; deny all; } } 还可以: server{ server_name www.XXX.com; allow xx.xx.xx.xx; deny all; location ~ / # 不是 ~ /\. { } }#:单站点统一限制IP,需要将以上配置写在对应域名配置的server{}内3.针对某个项目路径进行设置 vim xxx.com location ^~ /process-bar/ { allow x.xx.xx.xx; deny all; }12345678910111213141516171819202122232425262728293031323334
修改保存后重载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;
联系客服