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

    limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
    ...
    server{
        ...
        location {
            ...

            #限制每ip每秒不超过20个请求,漏桶数burst为5
            #brust的意思就是当每秒超过20个请求时,5个以内的请求会被延迟访问,超过5个的直接返回503
            #nodelay,设置该选项,将严格使用平均速率限制请求数,超过请求频率的直接返回503
            limit_req zone=allips burst=5 nodelay;
            ...
        }
        ...
    }
    ...
}

#注意配置的作用域

限制并发连接数:

http{
    ...

    #定义一个名为all_zone的limit_zone,大小10M内存来存储session,
    #nginx 1.18以后用limit_conn_zone替换了limit_conn
    limit_conn_zone   all_zone  $binary_remote_addr  10m;  
    ...
    server{
        ...
        location {
            ...
           limit_conn all_zone 20;          #连接数限制

           #带宽限制,对单个连接限数,限制带宽上限500k
           limit_rate 500k;            

            ...
        }
        ...
    }
    ...
}

配置访问白名单:

原文地址:https://www.cnblogs.com/imcati/p/10078180.html

时间: 2024-10-01 08:00:57

nginx配置访问频率的相关文章

Nginx配置访问权限

基于IP配置Nginx的访问权限 Nginx配置通过两种途径支持基本访问权限的控制,其中一种是由HTTP标准模块ngx_http_access_module支持的,通过IP来判断客户端是否拥有对Nginx的访问权限,这里包括两个指令: allow指令,用于设置允许访问Nginx的客户端IP: allow address | CIDR | all #address,允许访问的客户端IP,不支持同时设置多个.如果有多个IP需要设置,需要重复使用allow指令 #CIDR,允许访问的客户端的CIDR地

nginx配置访问限制

nginx官方文档:http://nginx.org/en/docs/ 本次使用到的模块是:ngx_http_limit_req_module  主要配置如下: ### http区域 limit_req_log_level info; limit_req_status 400; limit_req_zone $remote_addr zone=req_limit_per_ip:1m rate=1r/m; ### server或location区域(支持反代) limit_req zone=req

nginx配置访问xx.com跳转www.xx.com

二.在nginx里面配置 rewrite 规则.打开 Nginx.conf 文件找到server配置段:[以下是我的server配置段] 禁止IP地址访问 server{ listen 80 default_server; server_name _; return 403; } 禁止IP地址访问 server { listen 80; server_name www.xxx.com xxx.com; if ($host != 'www.xxx.com') { rewrite ^/(.*)$ h

nginx配置访问https[自签版]

通过openssl生成证书 (1)设置server.key,这里需要设置两遍密码: openssl genrsa -des3 -out server.key 1024 (2)参数设置,首先这里需要输入之前设置的密码: openssl req -new -key server.key -out server.csr 然后需要输入如下的信息 Country Name (2 letter code) [AU]: 国家名称 State or Province Name (full name) [Some

nginx 配置访问正则匹配

server{ listen 80; server_name api.zyy.com; root /var/www/api_zyy; index index.php; location ~ /assets/ {# access_log logs/static.log common; #设置静态内容有效期 并且重定向到static expires 1y; rewrite ^/static/(.*)$ /static/$1 break; } location ~ /static/ {# access

nginx限制访问频率

修改服务器上的nginx的配置文件 /usr/local/nginx/conf/nginx.conf http { limit_req_zone $binary_remote_addr zone=one:10m rate=3000r/m; proxy_cache_path  /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m; proxy_temp_path /var/tmp; include    

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

Windows下Nginx配置SSL实现Https访问(包含证书生成)

Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https? HTTP全名超文本传输协议,客户端据此获取服务器上的超文本内容.超文本内容则以HTML为主,客户端拿到HTML内容后可根据规范进行解析呈现.因此,HTTP主要负责的是"内容的请求和获取".问题就出在这部分.行监控.劫持.阻挡等行为很容易导致网站泄密,一些关键参数比如登录密码开发者会在客户端