diff options
author | Vladimir Homutov <vl@nginx.com> | 2015-06-18 14:17:30 +0300 |
---|---|---|
committer | Vladimir Homutov <vl@nginx.com> | 2015-06-18 14:17:30 +0300 |
commit | 14ff3d4f87c049ff4446efe067fbfe85d5ae18ab (patch) | |
tree | 8c07a252f1cff7d6ce105bde379e03a38d146949 /src/stream/ngx_stream_handler.c | |
parent | f470cd2b893379312c89f3265d3f1cca499929e8 (diff) | |
download | nginx-14ff3d4f87c049ff4446efe067fbfe85d5ae18ab.tar.gz nginx-14ff3d4f87c049ff4446efe067fbfe85d5ae18ab.zip |
Stream: connection limiting module.
stream {
limit_conn_zone $binary_remote_addr zone=perip:1m;
limit_conn_log_level error;
server {
...
limit_conn perip 1;
}
}
Diffstat (limited to 'src/stream/ngx_stream_handler.c')
-rw-r--r-- | src/stream/ngx_stream_handler.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/stream/ngx_stream_handler.c b/src/stream/ngx_stream_handler.c index e4538b241..7b635fa4c 100644 --- a/src/stream/ngx_stream_handler.c +++ b/src/stream/ngx_stream_handler.c @@ -147,6 +147,15 @@ ngx_stream_init_connection(ngx_connection_t *c) cmcf = ngx_stream_get_module_main_conf(s, ngx_stream_core_module); + if (cmcf->limit_conn_handler) { + rc = cmcf->limit_conn_handler(s); + + if (rc != NGX_DECLINED) { + ngx_stream_close_connection(c); + return; + } + } + if (cmcf->access_handler) { rc = cmcf->access_handler(s); |