您当前的位置: 首页 >  centos

小志的博客

暂无认证

  • 1浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Nginx——nginx请求限制详解(Centos7通过yum方式安装)

小志的博客 发布时间:2021-07-08 23:33:51 ,浏览量:1

目录
    • 一、Nginx的请求限制
    • 二、HTTP协议的连接与请求
      • 1、HTTP协议的连接与请求的概念
      • 2、HTTP协议的连接与请求的图解
      • 3、HTTP协议的连接与请求的版本关系
    • 三、Nginx连接限制的配置语法
    • 四、Nginx请求限制的配置语法
    • 五、Nginx请求限制的配置演示

一、Nginx的请求限制
  • limit_conn_module 连接频率限制
  • limit_req_module 请求频率限制
二、HTTP协议的连接与请求 1、HTTP协议的连接与请求的概念
  • HTTP请求是建立在一次TCP连接基础之上,完成一次http协议的请求先要进行tcp的三次握手。
  • 在TCP连接的基础之上再建立HTTP的请求,一次TCP请求至少产生一次HTTP请求。
2、HTTP协议的连接与请求的图解

在这里插入图片描述

3、HTTP协议的连接与请求的版本关系 HTTP协议版本连接关系HTTP1.0TCP不能复用HTTP1.1顺序性TCP复用HTTP2.0多路复用TCP复用 三、Nginx连接限制的配置语法

1、limit_conn_zone的配置语法

  • Syntax:limit_conn_zone key zone=name:size; limit_conn_zone表示申请的连接存储空间。key 表示连接以哪个作为key,例如以客户端的ip作为key,限制的就是客户端的ip。zone=name表示申请的存储空间的名称。size表示申请的存储空间的大小
  • Default:—— 表示默认没有配置
  • Context:http 表示需要在http块中进行配置

2、limit_conn的配置语法

  • Syntax:limit_conn zone number; zone表示limit_conn_zone中申请的存储空间的名称,number表示并发请求的限制,即同一时间限制连接数
  • Default:—— 表示默认没有配置
  • Context:http,server,location 表示需要在http块或server块或location块中进行配置
四、Nginx请求限制的配置语法

1、limit_req_zone的配置语法

  • Syntax:limit_req_zone key zone=name:size rate=rate; limit_req_zone表示申请的连接存储空间。key 表示连接以哪个作为key,例如以客户端的ip作为key,限制的就是客户端的ip。zone=name表示申请的存储空间的名称。size表示申请的存储空间的大小。rate表示请求的限制是多大,指的是一个限制的单位(以秒为单位)
  • Default:—— 表示默认没有配置
  • Context:http 表示需要在http块中进行配置

2、limit_req的配置语法

  • Syntax:limit_req zone=name [burst = number] [nodelay]; zone=name表示limit_req_zone中申请的存储空间的名称;burst = number表示超过了设置的速率以后,遗留的请求数量放到下一秒执行;
  • Default:—— 表示默认没有配置
  • Context:http,server,location 表示需要在http块或server块或location块中进行配置
五、Nginx请求限制的配置演示

1、先创建是一个submodule.html页面,上传到/opt/app/html目录下,以便配置请求限制后访问用。

  • submodule.html页面

    
    	
    		
    		submodule
    	
    	
    		html
    		xml
    		json
    		xml
    		jsp
    		html
    	
    
    
  • 浏览器访问如下图

    在这里插入图片描述 2、编辑nginx.conf配置文件

[root@localhost /]# vim /etc/nginx/nginx.conf

在这里插入图片描述 3、在http块中添加如下配置

#$binary_remote_addr表示客户端的地址;
#zone=req_zone表示同一个客户端地址发起的请求的存储空间名称
#1r/s 表示每秒一次
limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;

在这里插入图片描述 4、在http块的location块中添加如下配置

#nginx连接请求限制的配置
location / {
    root /opt/app/html;
    limit_req zone=req_zone;
}

在这里插入图片描述 5、检查配置修改的配置文件是否正确,返回successful表示配置文件修改无错。否则检查配置文件语法。

在这里插入图片描述 6、重新加载配置文件

[root@localhost /]# systemctl reload nginx

在这里插入图片描述

7、借助ab压力测试工具做并发请求

  • ab压力测试工具的安装参考lz此博文链接:https://wwwxz.blog.csdn.net/article/details/118584751

    #-n表示发起请求次数,-c表示并发请求次数 
    [root@localhost ~]# ab -n 20 -c 10 http://localhost/submodule.html
    

    在这里插入图片描述

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.2466s