使用Nginx限制客户地址请求访问

本文介绍如何使用Nginx配置来阻止特定IP对多个站点的访问,包括全局禁止、单站点限制和路径级别的权限控制。通过实例配置和命令演示了如何实现IP段屏蔽和精细化管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现状说明:

目前应用需要限制个别IP访问平台的网站,网站使用的是Nginx,现在的具体要求如下:
1.Nginx的所有站点都不允许x.x.x.x地址访问;
2.针对某一个站点www.xxx.com限制xx.xx.xx.xx地址访问;
3.针对某一个站点www.xxx.com的某个路径限制x.xx.xx.xx地址访问

分析说明

1.针对所有站点都不允许访问的话,需要做全局设置,配置在主配置文件中;
2.针对某一个站点的话,只需要在对应站点的conf文件中配置即可;
3.针对某个路径的话,只需要在对应站点的location里面配置即可

配置示例

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;
	}

修改保存后重载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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值