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动态转换图片大小生成缩略图
Mar 31 Servers
nginx简单配置多个server的方法
Mar 31 Servers
Apache POI的基本使用详解
Nov 07 Servers
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
Nov 17 Servers
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
Apr 07 Servers
Window server 2012 R2 AD域的组策略相关设置
Apr 28 Servers
Nginx静态压缩和代码压缩提高访问速度详解
May 30 Servers
使用Nginx+Tomcat实现负载均衡的全过程
May 30 Servers
Linux中文件的基本属性介绍
Jun 01 Servers
Linux磁盘管理方法介绍
Jun 01 Servers
Nginx安装配置详解
Jun 25 Servers
使用goaccess分析nginx日志的详细方法
Jul 09 #Servers
nginx作grpc的反向代理踩坑总结
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
使用nginx配置访问wgcloud的方法
Jun 26 #Servers
Nginx反向代理配置的全过程记录
制作能在nginx和IIS中使用的ssl证书
解析在浏览器地址栏输入一个URL后发生了什么
You might like
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
2016/03/22 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
Python 流程控制实例代码
2009/09/25 Python
Python实现在线程里运行scrapy的方法
2015/04/07 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
Python处理session的方法整理
2019/08/29 Python
乡镇庆八一活动方案
2014/02/02 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
爱心捐款倡议书
2014/04/14 职场文书
大学生党性分析材料
2014/12/19 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
Go 语言结构实例分析
2021/07/04 Golang
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫