Nginx 模块之 ngx_http_limit_conn_module 限制连接数 用法

从Nginx 1.1.8版本后以前的limit_conn 语法发生了改变,新版升级为limit_conn_zone .

连接数限制不是所有的连接都计算在内;只有那些已请求该服务器并当前正在处理的请求(请求头已充分阅读的)

limit_conn_zone

语法:limit_conn_zone key zone=name:size;

默认值:—

使用环境:http

limit_conn_zone   $binary_remote_addr   zone=one:1m
#-------------------------------------------------------------
server {
    listen 80;
    server_name  www.test.com;
    limit_conn one 10;
}

超出连接数的连接,服务器默认会返回503错误(返回的错误代码可以设置,见下文)。

注意,这里使用的是$binary_remote_addr ,而不是 $remote_addr ,这是因为 $remote_addr 的长度为 7~15个字节,它的会话长度为32或者64bytes ,而 $binary_remote_addr的长度为4字节,会话长度信息为32 bytes ,当设置 1MB的zone时,如果使用 $binary_remote_addr 的方式,该zone将可以存放32000个会话。(准确的是32768个会话)

在 Nginx v1.7.6版本以后 key 可以使用一个变量了。

limit_conn

语法:limit_conn zone number;

默认值:—

使用环境: http, server, location

limit_conn_zone $binary_remote_addr zone=addr:10m;

server {
    location /download/ {
        limit_conn addr 1;
    }

另外还可以叠加使用,同时限制访问的虚拟主机。

limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;

server {
    ...
    limit_conn perip 10;
    limit_conn perserver 100;
}

limit_conn_log_level            //该指令在 0.8.18版后新增

语法: limit_conn_log_level    info | notice | warn | error;

默认值: limit_conn_log_level   error;

使用环境: http, server, location

设置触发最大限制后记录日志的级别,默认为error级别。

limit_conn_status

语法: limit_conn_status code;

默认值: limit_conn_status 503;

使用环境: http, server, location

该指令在 1.3.15版本后新增,当超出最大同时连接数的时候,对于新增连接返回的错误代码,默认503.

时间: 2024-10-25 01:55:22

Nginx 模块之 ngx_http_limit_conn_module 限制连接数 用法的相关文章

nginx 模块简介

nginx模块一般分为5类:核心模块.标准http模块.可选http模块.邮件服务模块.第三方模块. 其中核心模块和标准http模块在快速编译之后就包含在了nginx中. 主要看一下核心模块.标准http模块和可选http模块,这些模块都可以在ngx_modules.c中找到: 1 #include <ngx_config.h> 2 #include <ngx_core.h> 3 4 5 6 extern ngx_module_t ngx_core_module; 7 extern

FastDFS的php和nginx模块配置

一.FastDFS和php整合 1.安装php # 安装依赖包 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel cu

【重要】Nginx模块之————Lua-Resty-Redis的参数介绍 (Lua-Nginx-Module 模块的Redis客户端驱动程序)

一.描述 这个Lua库是ngx_lua nginx模块的Redis客户端驱动程序:https://github.com/openresty/lua-nginx-module/#readme,这个Lua库利用ngx_lua的cosocket API,确保100%的非阻塞行为.请注意,至少需要ngx_lua 0.5.14或OpenResty 1.2.1.14. 二.方法介绍 除了所有的小写字母外,所有的Redis命令都有自己的方法.您可以在这里找到完整的Redis命令列表:http://redis.

nginx模块开发获取post参数

> 您好!>     我想请问下nginx模块里面怎么获取post参数,能有具体的代码更好!谢谢> 对于 "application/x-www-form-urlencoded" 格式的 POST 参数获取,可以参考 ngx_lua 模块的ngx.req.get_post_args() 函数以及 ngx_form_input 模块的实现: http://wiki.nginx.org/HttpLuaModule#ngx.req.get_post_args https://

nginx 模块nginx_upstream_check_module

我这里用到的nginx为最新版的nginx 所以我使用了最新的插件 nginx_upstream_check_module-master.zip cd nginx-1.7.1 patch -p1 </tmp/nginx_upstream_check_module-master/check_1.5.12+.patch nginx -V ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_s

Nginx模块开发入门(转)

前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并发情况下具有巨大的性能优势. Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性.Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任,例如目前淘宝内

linux下nginx模块开发入门

本文模块编写参考http://blog.codinglabs.org/articles/intro-of-nginx-module-development.html 之前讲了nginx的安装,算是对nginx有了最初步的了解,在配置完之后,我们就可以进行简单的nginx模块开发了. 下面本文展示一个简单的Nginx模块开发全过程,我们开发一个叫echo的handler模块,这个模块功能非常简单,它接收“echo”指令,指令可指定一个字符串参数,模块会输出这个字符串作为HTTP响应.例如,对ngi

Nginx模块开发入门

前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并发情况下具有巨大的性能优势. Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性.Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任,例如目前淘宝内

Nginx模块开发入门(转)

前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并发情况下具有巨大的性能优势. Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性.Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任,例如目前淘宝内