nginx如何请求限制
这篇文章主要介绍“nginx如何请求限制”,在日常操作中,相信很多人在nginx如何请求限制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nginx如何请求限制”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
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协议的连接与请求的图解
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> <metacharset="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>
浏览器访问如下图
2、编辑nginx.conf配置文件
[root@localhost/]#vim/etc/nginx/nginx.conf
3、在http块中添加如下配置
#$binary_remote_addr表示客户端的地址; #zone=req_zone表示同一个客户端地址发起的请求的存储空间名称 #1r/s表示每秒一次 limit_req_zone$binary_remote_addrzone=req_zone:1mrate=1r/s;
4、在http块的location块中添加如下配置
#nginx连接请求限制的配置 location/{ root/opt/app/html; limit_reqzone=req_zone; }
5、检查配置修改的配置文件是否正确,返回successful表示配置文件修改无错。否则检查配置文件语法。
6、重新加载配置文件
[root@localhost/]#systemctlreloadnginx
7、借助ab压力测试工具做并发请求
ab压力测试工具的安装参考lz此博文链接:https://wwwxz.blog.csdn.net/article/details/118584751
#-n表示发起请求次数,-c表示并发请求次数 [root@localhost~]#ab-n20-c10http://localhost/submodule.html
到此,关于“nginx如何请求限制”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!
推荐阅读
-
CentOS环境中如何部署nginx、php和虚拟主机配置
CentOS环境中如何部署nginx、php和虚拟主机配置今天小编...
-
怎么使用docker安装nginx提供的web服务
-
Python怎么实时获取任务请求对应的Nginx日志
Python怎么实时获取任务请求对应的Nginx日志这篇文章主要讲...
-
docker怎么搭建nacos+nginx+mysql+redis+springboot项目
-
Nginx的location功能怎么配置
Nginx的location功能怎么配置本篇内容介绍了“Nginx...
-
Nginx安装后常用功能如何配置
Nginx安装后常用功能如何配置这篇文章主要介绍“Nginx安装后...
-
怎么用服务器的负载均衡nginx+tomcat实现动静分离
-
Nginx反向代理与负载均衡概念及upstream模块如何使用
-
Nginx实现会话保持的方式有哪些
-
Nginx怎样实现负载均衡