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 31 Servers
Nginx tp3.2.3 404问题解决方案
Mar 31 Servers
Nginx安装完成没有生成sbin目录的解决方法
Mar 31 Servers
Nginx URL重写rewrite机制原理及使用实例
Apr 01 Servers
Nginx 路由转发和反向代理location配置实现
Nov 11 Servers
Nginx配置https的实现
Nov 27 Servers
教你使用Jenkins集成Harbor自动发布镜像
Apr 03 Servers
阿里云k8s服务升级时502错误 springboot项目应用
Apr 09 Servers
安装harbor作为docker镜像仓库的问题
Jun 14 Servers
Win2008系统搭建DHCP服务器
Jun 25 Servers
Nginx如何限制IP访问只允许特定域名访问
Jul 23 Servers
Flink 侧流输出源码示例解析
Sep 23 Servers
使用goaccess分析nginx日志的详细方法
Jul 09 #Servers
nginx作grpc的反向代理踩坑总结
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
使用nginx配置访问wgcloud的方法
Jun 26 #Servers
Nginx反向代理配置的全过程记录
制作能在nginx和IIS中使用的ssl证书
解析在浏览器地址栏输入一个URL后发生了什么
You might like
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
简述JS控制台的使用
2018/07/15 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
python实现zabbix发送短信脚本
2018/09/17 Python
pandas.cut具体使用总结
2019/06/24 Python
简单了解python变量的作用域
2019/07/30 Python
Pytorch Tensor的统计属性实例讲解
2019/12/30 Python
python字典按照value排序方法
2020/12/28 Python
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
C#怎么让一个窗口居中显示?
2015/10/20 面试题
大课间活动实施方案
2014/03/06 职场文书
党员剖析材料范文
2014/09/30 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
delete in子查询不走索引问题分析
2022/07/07 MySQL