Nginx 限速模块一览
2016-04-10 22:44
771 查看
为了保护服务器不被刷流量,或者业务方面的一些限制,需要做一些限速措施。
语法:
定义限制链接区域:
设置连接数限制:
示例:
语法:
定义限速区:
设置限速:
示例:
代表单词请求响应量最多为1024K。
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
http://nginx.org/en/docs/stream/ngx_stream_limit_conn_module.html
http://nginx.org/en/docs/http/ngx_http_core_module.html
一、http 请求并发连接数模块:ngx_http_limit_conn_module
这个模块可以设置每个定义的变量(比如客户端ip)的并发连接数,比如:某个客户端ip在同一时间内的连接数不能超过某个值。语法:
定义限制链接区域:
Syntax: limit_conn_zone key zone=name:size; Default: — Context: http
设置连接数限制:
Syntax: limit_conn zone number; Default: — Context: http, server, location
示例:
# 根据客户端ip进行限制,区域名称为perip,总容量为10m limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m; server { ... # 使用perip区域名称(zone name),同一时间并发数不得超过10 limit_conn perip 10; limit_conn perserver 100; }
二、tcp 请求并发连接数模块:ngx_stream_limit_conn_module(since 1.9.3)
这是自 nginx 1.9.3 提供的 TCP负载均衡的限制流连接数模块,用法等同于ngx_http_limit_conn_module。
三、http 请求限制模块:ngx_http_limit_req_module
这个模块用来限制每个被定义的变量(比如客户端ip)的访问速率,比如:通俗点来讲,每个ip可以每秒请求几次。语法:
定义限速区:
Syntax: limit_req_zone key zone=name:size rate=rate; Default: — Context: http
设置限速:
Syntax: limit_req zone=name [burst=number] [nodelay]; Default: — Context: http, server, location
示例:
#limit_req_zone 为定义一个限速区域,binary_remote_addr代表一个客户端ip,zone perip为区域名称,10m为总容量,rate=1r/s代表每秒只接受1个请求 limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s; limit_req_zone $server_name zone=perserver:10m rate=10r/s; server { ... # 代表使用zone为preip的配置,设置的速率1个每秒,缓冲区5个请求,如果超过速率和缓存区大小,直接返回503异常码 limit_req zone=perip burst=5 nodelay; # 使用persever的配置,10个请求每秒,缓冲区为10个请求,没有nodelay参数,则会将请求延迟处理 limit_req zone=perserver burst=10; }
四、nginx http 核心模块:ngx_http_core_module
使用到了其中的limit_rate命令,可以限制响应速率比如:limit_rate 1024K;
代表单词请求响应量最多为1024K。
参考链接
http://nginx.org/en/docs/http/ngx_http_limit_conn_module.htmlhttp://nginx.org/en/docs/http/ngx_http_limit_req_module.html
http://nginx.org/en/docs/stream/ngx_stream_limit_conn_module.html
http://nginx.org/en/docs/http/ngx_http_core_module.html
相关文章推荐
- nginx 关闭后启动失败
- modSecurity和Naxsi哪个更适合Nginx搭建WAF
- [Zabbix3.0 ]添加Nginx监控
- [Zabbix3.0 ]添加Nginx监控
- nginx 日志分析,python 实现
- 解决Nginx的connect() to 127.0.0.1:8080,selinux
- Nginx 基本配置(log_format,rewrite,proxy)(转)
- nginx配置文件nginx.conf解读
- linux下nginx、php、mysql环境搭建记录和问题汇总
- CentOS7上Nginx的使用
- Ngnix Proxy模块的应用之负载均衡
- Nginx Rewrite的应用-根据访问平台做简单跳转
- Nginx的编译安装
- nginx中相关配置
- nginx
- nginx重写rewrite基础及实例分享
- CentOS 7安装nginx 端口代理配置
- windows下的php、nginx、mysql配置记录和问题汇总
- nginx源码包编译安装
- Nginx安装手册