使用Nginx限制同一IP的访问频率

http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

配置方法

修改nginx的配置文件, 在http{}下增加

# 创建一个10MB大小的请求记录zone, 限制同一IP的访问每分钟60次
limit_req_zone $binary_remote_addr zone=req_perip:10m rate=60r/m;
# 创建一个10MB大小的连接数记录zone, 记录同一IP的同时连接数
limit_conn_zone $binary_remote_addr zone=con_perip:10m;

在server{} 或 location{} 下增加

# 对指定的zone, 设置突发余量限制为5, 不延迟统计
limit_req zone=req_perip burst=5 nodelay;
# 对指定的zone, 限制同时连接数不超过1
limit_conn conperip 1;

注: 对于设定了连接数限制的, 检查 worker_processes 的值, 如果这里设置的数值还不到连接数的限制, 连接数限制永远不会被触发.

时间: 2024-10-05 06:57:01

使用Nginx限制同一IP的访问频率的相关文章

nginx 配置禁用ip地址访问

做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描.拉取.注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables . Nginx 的deny指令或者是程序来ban掉这些恶意请求. iptables 需要root权限配置 下面介绍使用nginx 来配置ip禁用 首选需要我们熟悉nginx 的deny指令 allow 语法:     allow address | CIDR | unix: | all; 默认值:     - 配置段:     http, server

nginx配置限制同一个ip的访问频率

1.在nginx.conf里的http{}里加上如下代码: limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m; 2.在需要限制并发数和下载带宽的网站配置server{}里加上如下代码: limit_conn perip 2; limit_conn perserver 20; limit_rate 100k; 补充说明下参数: $binary_rem

Nginx如何配置除某个IP之外,其他IP,同一IP访问频率限制为30次/每秒

一.限制所有单个ip的访问频率 1.http中的配置 http { #$limit_conn_zone:限制并发连接数 limit_conn_zone $binary_remote_addr zone=one1:10m; #limit_req_zone:请求频率 #$binary_remote_addr:以客户端IP进行限制 #zone=one:10m:创建IP存储区大小为10M,用来存储访问频率 #rate=10r/s:表示客户端的访问评率为每秒10次 limit_req_zone $bina

Nginx实现基于ip的访问控制(Ngx_http_access_module模块)

Nginx实现基于ip的访问控制功能:(Ngx_http_access_module) 官方文档:http://nginx.org/en/docs/http/ngx_http_access_module.html 官方示例: The ngx_http_access_module module allows limiting access to certain client addresses.限定资源只被指定的客户端访问. Example Configuration: location / {

Django Restful Framework【第三篇】认证、权限、限制访问频率

一.认证 认证请求头 views.py #!/usr/bin/env python # -*- coding:utf-8 -*- from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.authentication import BaseAuthentication from rest_framework.permissions import

REST framework (组件使用之认证、权限、访问频率)

目录 一.认证 二.权限 三.限制访问频率 四.总结 一.认证(补充的一个点) 认证请求头 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 from rest_framework.views import APIView 4 from rest_framework.response import Response 5 from rest_framework.authentication import BaseAuthentication 6

nginx lua redis 访问频率限制(转)

1. 需求分析 Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下快速访问控制的需求. Nginx处理请求的过程一共划分为11个阶段,分别是: post-read.server-rewrite.find-config.rewrite.post-rewrite. preaccess.access.post-access.try-files.content.log. 在openre

nginx配置访问频率

nginx可以通过limit_conn_zone和limit_req_zone两个组件来限制客户端访问服务端的目录和文件的频率和次数,能够抵挡住部分cc.ddos攻击. 限制访问频率: http{ ... #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存, #以$binary_remote_addr 为key,限制平均每秒的请求为20个, #1M能存储16000个状态,rete的值必须为整数, #如果限制两秒钟一个请求,可以设置成30r/m lim

Nginx禁止直接通过IP地址访问网站(关闭默认站点或空主机头)

这篇文章主要介绍了Nginx中禁止使用IP访问网站的配置实例,一般在备案时可能需要这种设置,需要的朋友可以参考下 国内因为备案的原因,所有服务器都要禁止使用IP访问网站.否则,如果允许使用IP访问网站,那随便解析一个域名到该IP,访问该域名就可以打开网站了.这是一个极大的风险!Nginx中可以很方便的来解决这个问题,小菜鸟来跟大家一起探讨一下. 如下的配置项,可以设置允许使用IP访问网站. server { listen 80; server_name ""; } 这里相当于是绑定了一