点赞
评论
收藏
分享
举报
nginx_concurrent_limit_module
发表于2020-11-19 22:49

浏览 1k

文章标签

授权协议:
BSD 2-Clause "Simplified" License
原作者联系方式:
lrita@163.com
功能说明:
这是nginx的第三方模块。它使nginx上游可以限制每个后端服务器的并发级别。目前仅支持循环模式。

nginx_concurrent_limit_module:

This is a third part module for nginx. It make nginx upstream can limit concurrent-level for per backend server.
It's only support round robin mode for now.
This is a patch for nginx-1.9.9.

#config: Set concurrent in configure file.
concurrent=2  means the backend server can receive 2 request in same time.
concurrent  means the count of request in the same time, not qps.
If all backend reach concurrent-limited, nginx will give a 502 error to users.

upstream backend
{
    server 127.0.0.1:9090 concurrent=2;
    server 127.0.0.1:9091 concurrent=2;
}

#Usage and Complie:

patch -p1 < nginx-1.9.9.patch
./configure
make
make install

#Chinese Describtion:     在实际生产过程中,可能每台backend server的配置不同,导致存在不同的系能瓶颈,一旦请求并发数超过阈值,会造成雪崩效应,使服务器连阈值内的请求量都处理不了。
    如果使用简单的weigth权重控制,并不能解决这种困境。如果请求峰值超过了系统所能承载的并发,仍然会造成雪崩效应。
    为了解决以上的情形,开发了此补丁,当系统瓶颈主要在backend server时,该补丁能很好的抑制backend server陷入雪崩效应的发生。
    可以根据压测结果,配置每一台backend server的并发数concurrent。当backend server正在处理的请求超过concurrent值后,upstream就不再会选给该backend server转发新的请求。

已修改于2023-03-08 02:18
创作不易,留下一份鼓励
皮皮鲁

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
皮皮鲁
这家伙很懒还未留下介绍~
85
文章
2
问答
41
粉丝
相关文章
概述 Nginx 从 1.9.0 开始加入了 stream 模块支持四层的代理,转发和负载均衡。但是,stream 模块的功能相对简单。对需要 ALG 处理的协议比如 FTP 的支持也远远不够。我试着去修改了 Nginx 的源代码,添加了alg模块。使之支持了 FTP主动模式和被动模式下的 ALG 功能。 Github 的源码地址为 : https://github.com/pei-jikui/nginx-alg。代码本身不困难,困难的是如何把代码模块化,有机地融入nginx原有的框架结构中,尽量少地修改已有的框架代码。而后者,需要对stream模块乃至nginx本身的框架和代码有一定的熟悉程度。图 1:FTP被动模式 数据连接 图2 :FTP主动模式 数据连接可能大家会说,Passive 模式不需要ALG 。准确
点赞 6
浏览 3.4k
使用配置方式:install./configure--add-module={module_dir}&&make&&makeinstallconfserver{ listen80; client_max_body_size100m; location/{ roothtml/upload; } #Uploadformshouldbesubmittedtothislocation location/upload{ #Passalteredrequestbodytothislocation upload_pass/example.php; #Storefilestothisdirectory #Thedirectoryishashed,subdirectories0123456789shouldexist
点赞 3
浏览 2.6k
使用方法:1.创建tableCREATETABLE oauth_access_token (id int(10)NOTNULLAUTO_INCREMENT,access_token varchar(255)DEFAULTNULL,expires_in int(10)NOTNULL,last_used_time int(10)NOTNULL,PRIMARYKEY(id),KEY ACCESS_TOKEN (access_token))ENGINE=InnoDBDEFAULTCHARSET=utf8;2.安装Oauth模块cd/work/nginx-1.8.0&&./configure--add-module=/work/nginx-http-oauth-module&&make3.添加配置请参照源码连接中的nginx.conf 4.使用Oauth模块a)创建访问tokenhttp://192.168.1.104/token?appid=
点赞 3
浏览 1.8k