Nginx限速模块初探(5)

我们看到ngx_http_limit_req_handler()调用了函数ngx_http_limit_req_lookup(),并根据其返回值决定如何操作:或是拒绝,或是交给下一个handler处理,或是将请求放入定期器队列。当限速规则都通过后,该hanlder通过调用函数ngx_http_limit_req_account()得出当前请求需要的延迟时间,如果不需要延迟,就将请求交给后续的handler进行处理,否则将请求放到定时器队列里。注意这个定时器队列是共享的,并没有为单独的key(比如,每个IP地址)设置队列。关于handler模块背景知识的介绍,可参考Tengine团队撰写的Nginx开发从入门到精通

结尾

本文主要讲解了Nginx按请求速率限速模块的用法和原理,其中burst和nodelay参数是容易引起误解的,虽然可通过burst允许缓存处理突发请求,结合nodelay能够降低突发请求的处理时间,但是长期来看他们并不会提高吞吐量的上限,长期吞吐量的上限是由rate决定的。需要特别注意的是,burst设置了nodelay时,系统瞬间的QPS可能会超过rate设置的阈值。

本文只是对Nginx管中窥豹,更多关于Nginx介绍的文章,可参考Tengine团队撰写的Nginx开发从入门到精通

下面关于Nginx的文章您也可能喜欢,不妨参考下:

Nginx 403 forbidden的解决办法 

CentOS 7下Nginx服务器的安装配置 

CentOS上安装Nginx服务器实现虚拟主机和域名重定向 

CentOS 6.8 安装LNMP环境(Linux+Nginx+MySQL+PHP) 

Linux下安装PHP环境并配置Nginx支持php-fpm模块 

Nginx服务的SSL认证和htpasswd认证 

Ubuntu 16.04上启用加密安全的Nginx Web服务器 

Linux中安装配置Nginx及参数详解 

Nginx日志过滤 使用ngx_log_if不记录特定日志

CentOS 7.2下Nginx+PHP+MySQL+Memcache缓存服务器安装配置 

CentOS6.9编译安装Nginx1.4.7 

Nginx 的详细介绍请点这里
Nginx 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/589a28b238089c99ded105edb8e6c3f9.html