本文主要是对nginx官方limit_conn相关模块的配置用法和一些个人理解,limit_conn
主要用于限制用户的连接数,在如今多线程并发请求大量普及的情况下,对于一些特殊的场景还是有着一定的用处的。
1、背景
目前来说在nginx上面我们常见的三种限速操作分别是:限制请求数(request)、限制连接数(connection)、限制响应速度(rate),对应在nginx的模块相关指令分别是limit_req
、limit_conn
和limit_rate
三个系列。limit_conn
模块和limit_req
模块类似,有着许多个指令组成一个大的模块,两个模块之间有很多指令的命名方式和用法也大同小异,对limit_req
模块有兴趣的可以点这里查看之前的文章。
ngx_http_limit_conn_module
模块主要是用于根据特定的key来限制连接的数量,例如根据IP地址来限制连接数。需要注意的是并不是所有的连接都会被算入其中,只有当一个连接的整个请求头被读取并且已经被nginx服务器处理的时候才会算入限制中。这里我们重点介绍的还是limit_conn