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

现状说明:

目前应用需要限制个别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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Nginx的模块来限制同一IP的访问频率。其中一个常用的模块是ngx_http_limit_req_module,它可以帮助您实现这个目标。 要使用该模块,请按照以下步骤进行操作: 1. 打开您的Nginx配置文件,通常位于 `/etc/nginx/nginx.conf` 或 `/etc/nginx/conf.d/default.conf`。 2. 在适当的位置(例如 `http` 块内),添加以下配置: ``` http { # 设置限制频率的zone limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; # 设置限制频率的规则 server { location / { # 使用之前定义的zone进行限制 limit_req zone=one burst=5; # 其他配置项... } } # 其他配置项... } ``` 在上述配置中,`limit_req_zone` 定义了一个名为 `one` 的zone,使用 `$binary_remote_addr` 来标识每个IP地址。`10m` 是用于存储限制信息的内存大小,您可以根据实际情况进行调整。`rate=1r/s` 表示每秒允许一个请求。 在 `server` 块内的 `location` 配置中,使用 `limit_req zone=one burst=5` 来应用限制规则。`burst` 参数表示在超过限制频率时允许的突发请求数量。 3. 保存配置文件并重新加载Nginx,以使更改生效。您可以使用以下命令重新加载Nginx: ``` sudo systemctl reload nginx ``` 这样,Nginx就会根据配置限制同一IP的访问频率。当超过设定的限制时,Nginx会返回一个503错误给客户端。 请注意,您可以根据需要调整 `limit_req_zone` 和 `limit_req` 的参数,以满足您的具体需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值