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 相关文章推荐
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
Jun 21 Servers
nginx处理http请求实现过程解析
Mar 31 Servers
Nginx搭建rtmp直播服务器实现代码
Mar 31 Servers
Nginx域名转发使用场景代码实例
Mar 31 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
nginx中proxy_pass各种用法详解
Nov 07 Servers
Kubernetes中Deployment的升级与回滚
Apr 01 Servers
解决IIS7下无法绑定https主机的问题
Apr 29 Servers
配置nginx负载均衡
May 06 Servers
在容器中使用nginx搭建上传下载服务器
May 11 Servers
windows server 2012安装FTP并配置被动模式指定开放端口
Jun 10 Servers
shell进度条追踪指令执行时间的场景分析
Jun 16 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/01 无线电
php二分查找二种实现示例
2014/03/12 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
document.designMode的功能与使用方法介绍
2007/11/22 Javascript
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
python显示生日是星期几的方法
2015/05/27 Python
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
Python3+Pycharm+PyQt5环境搭建步骤图文详解
2019/05/29 Python
简单了解python协程的相关知识
2019/08/31 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
小学生打架检讨书
2014/01/26 职场文书
生日主持词
2014/03/20 职场文书
民生工作实施方案
2014/05/31 职场文书
中职生求职信
2014/07/01 职场文书
男性健康日的活动方案
2014/08/18 职场文书
优秀志愿者感言
2015/08/01 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技