nginx请求限制配置方法

 更新时间:2021年07月09日 15:28:30   作者:小志的博客  
这篇文章给大家介绍nginx请求限制配置方法,包括http协议的连接和请求,nginx配置语法,本文给大家介绍的非常详细,需要的朋友参考下吧

Nginx 是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性:
在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。

一、Nginx的请求限制

  • limit_conn_module 连接频率限制
  • limit_req_module 请求频率限制

二、HTTP协议的连接与请求

1、HTTP协议的连接与请求的概念

  • HTTP请求是建立在一次TCP连接基础之上,完成一次http协议的请求先要进行tcp的三次握手。
  • 在TCP连接的基础之上再建立HTTP的请求,一次TCP请求至少产生一次HTTP请求。

2、HTTP协议的连接与请求的图解

在这里插入图片描述

3、HTTP协议的连接与请求的版本关系

HTTP协议版本 连接关系
HTTP1.0 TCP不能复用
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目录下,以便配置好sub_module模块编译参数后访问/opt/app/html目录下的submodule.html页面,查看替换的内容。

submodule.html页面

<html>
	<head>
		<meta charset="utf-8">
		<title>submodule</title>
	</head>
	<body>
		<a>html</a></br>
		<a>xml</a></br>
		<a>json</a></br>
		<a>xml</a></br>
		<a>jsp</a></br>
		<a>html</a>
	</body>
</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

在这里插入图片描述

到此这篇关于nginx请求限制配置方法的文章就介绍到这了,更多相关nginx请求限制内容请搜索得牛网以前的文章或继续浏览下面的相关文章希望大家以后多多支持得牛网!

相关文章

  • 使用nginx缓存服务器上静态文件的设置方法

    使用nginx缓存服务器上静态文件的设置方法

    这篇文章主要介绍了使用nginx缓存服务器上的静态文件,文中给大家提到了nginx缓存的优点及设置方法,通过实例相结合的形式给大家介绍的非常详细,需要的朋友可以参考下
    2018-05-05
  • Nginx实现前后端分离

    Nginx实现前后端分离

    本篇文章是小编整理的关于Nginx实现前后端分离的详细代码,如果你对此有需要,可以参考测试下。
    2018-02-02
  • Nginx + Tomcat实现请求动态数据和请求静态资源的分离详解

    Nginx + Tomcat实现请求动态数据和请求静态资源的分离详解

    这篇文章主要给大家介绍了关于Nginx + Tomcat实现请求动态数据和请求静态资源的分离的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • Nginx 多站点配置实例详解

    Nginx 多站点配置实例详解

    这篇文章主要介绍了Nginx 多站点配置实例详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • Nginx内容缓存以及常见参数配置详析

    Nginx内容缓存以及常见参数配置详析

    这篇文章主要给大家介绍了关于Nginx内容缓存以及常见参数配置的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Nginx服务器的安装与一些基本配置总结

    Nginx服务器的安装与一些基本配置总结

    这篇文章主要介绍了Nginx服务器的安装与一些基本配置总结,包括静态化与负载均衡等重要设置的方法记录,需要的朋友可以参考下
    2015-11-11
  • 探究Nginx中reload流程的原理真相

    探究Nginx中reload流程的原理真相

    这篇文章主要介绍了探究Nginx中reload流程的原理真相,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 详解Nginx几种常见实现301重定向方法上的区别

    详解Nginx几种常见实现301重定向方法上的区别

    本篇文章主要介绍了详解Nginx几种常见实现301重定向方法上的区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Nginx-rtmp实现直播媒体实时流效果

    Nginx-rtmp实现直播媒体实时流效果

    这篇文章主要介绍了Nginx-rtmp实现直播媒体实时流效果,文中给出了总体设计图,为了整合平台,会自建RTMP流媒体服务器和使用云厂商SaaS的RTMP流媒体服务,需要的朋友可以参考下
    2018-08-08
  • nginx php-fpm 小VPS 优化

    nginx php-fpm 小VPS 优化

    小VPS受系统资源的限制,访问量过大,超过系统所能承受的极限时,有一部分请求就会502了。在系统资源够用的情况,优化nginx,php-fpm,以及系统本身
    2016-05-05

最新评论