nginx请求限制配置方法


Posted in Servers onJuly 09, 2021

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协议的连接与请求的图解

nginx请求限制配置方法

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>

浏览器访问如下图

nginx请求限制配置方法

2、编辑nginx.conf配置文件

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

nginx请求限制配置方法

3、在http块中添加如下配置

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

nginx请求限制配置方法

4、在http块的location块中添加如下配置

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

nginx请求限制配置方法

5、检查配置修改的配置文件是否正确,返回successful表示配置文件修改无错。否则检查配置文件语法。

nginx请求限制配置方法

6、重新加载配置文件

[root@localhost /]# systemctl reload nginx

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请求限制内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
nginx 设置多个站跨域
Mar 09 Servers
Nginx开启Brotli压缩算法实现过程详解
Mar 31 Servers
nginx里的rewrite跳转的实现
Mar 31 Servers
Nginx服务器如何设置url链接
Mar 31 Servers
nginx反向代理配置去除前缀案例教程
Jul 26 Servers
教你使用Jenkins集成Harbor自动发布镜像
Apr 03 Servers
Windows Server 2016 配置 IIS 的详细步骤
Apr 28 Servers
项目中Nginx多级代理是如何获取客户端的真实IP地址
May 30 Servers
讨论nginx location 顺序问题
May 30 Servers
Nginx代理Redis哨兵主从配置的实现
Jul 15 Servers
Apache Kafka 分区重分配的实现原理解析
Jul 15 Servers
win10搭建配置ftp服务器的方法
Aug 05 Servers
使用goaccess分析nginx日志的详细方法
Jul 09 #Servers
nginx作grpc的反向代理踩坑总结
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
使用nginx配置访问wgcloud的方法
Jun 26 #Servers
Nginx反向代理配置的全过程记录
制作能在nginx和IIS中使用的ssl证书
解析在浏览器地址栏输入一个URL后发生了什么
You might like
深入PHP许愿墙模块功能分析
2013/06/25 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
2020/05/12 PHP
js prototype截取字符串函数
2010/04/01 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
详解Vue中过度动画效果应用
2017/05/25 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
利用JavaScript的%做隔行换色的实例
2017/11/25 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
[01:04:22]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 IG vs EG
2018/04/01 DOTA
深入理解python多进程编程
2016/06/12 Python
Python dict的常用方法示例代码
2020/06/23 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
党的群众路线教育实践方案
2014/05/11 职场文书
干部鉴定材料
2014/05/18 职场文书
十八大演讲稿
2014/05/22 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
Go Gin实现文件上传下载的示例代码
2021/04/02 Golang