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简单配置多个server的方法
Mar 31 Servers
Nginx已编译的nginx-添加新模块
Apr 01 Servers
Nginx工作原理和优化总结。
Apr 02 Servers
Nginx 反向代理解决跨域问题多种情况分析
Jan 18 Servers
Nginx禁止ip访问或非法域名访问
Apr 07 Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 Servers
Nginx限流和黑名单配置
May 20 Servers
nginx设置资源请求目录的方式详解
May 30 Servers
Windows server 2003卸载和安装IIS的图文教程
Jul 15 Servers
nginx配置指令之server_name的具体使用
Aug 14 Servers
解决ubuntu安装软件时,status-code=409报错的问题
Dec 24 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函数常用用法小结
2010/02/08 PHP
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
JavaScript中的this实例分析
2011/04/28 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
python实现查询IP地址所在地
2015/03/29 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
浅谈对yield的初步理解
2017/05/29 Python
scrapy爬虫实例分享
2017/12/28 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
python各类经纬度转换的实例代码
2019/08/08 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
护理专科毕业生自荐书范文
2014/02/19 职场文书
师德师风个人反思
2014/04/28 职场文书
小学社团活动总结
2014/06/27 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL
Oracle使用别名的好处
2022/04/19 Oracle