文档章节

Nginx 手记(三)请求限制

神奇Sam
 神奇Sam
发布于 2017/08/30 14:39
字数 565
阅读 444
收藏 0

前言

HTTP协议的连接与请求
    0、完成HTTP请求前,需要完成TCP的三次握手
    1、HTTP请求建立在一次TCP连接基础上
    2、一次TCP连接至少产生一次HTTP请求

一、概念

1、连接配置
#开辟一个空间存储连接状态
#key:指定存储的key,如:用客户端的ip作为key,那么限制的就是ip
#name:指定空间名字
#size:指定空间大小 
语  法:limit_conn_zone key zone=name:size
默认值:无
上下文:http

#使用连接限制
#zone:指定上面配置的zone的名字
#number:限制并发数
语法:limit_conn zone number;
默认值:无
上下文:http,server,location

2、请求配置
#key:指定存储请求的key
#name:指定空间名字
#size:指定空间大小 
#rate:请求的限制,以秒为单位,限制每秒请求个数,如:1r/s 每秒一个请求
语法:limit_req_zone key zone=name:size rate=rate;
默认值:无
上下文:http

#zone:指定上面配置的zone的名字
#burst:客户端请求超过速率以后,指定number个遗留到下一秒执行
#nodelay:其他超过速率的请求将不延迟返回
语法:limit_req zone=name [burst=number] [nodelay]
默认值:无
上下文:http,server,location

二、配置实例

在/etc/nginx/conf.d 修改的default.conf配置,内容如下:
[root@sam ~]# vim /etc/nginx/conf.d/default.conf
#定义限制连接的存储空间,以ip地址作为key进行限制,空间大小为1m
limit_conn_zone $binary_remote_addr zone=conn_zone:1m;
#定义请求访问的存储空间,以ip地址作为key进行限制,空间大小为1m,限制速率为每秒一次请求
limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /opt/site/sam;
        #limit_conn conn_zone 1;                    #配置连接限制
        #limit_req zone=req_zone burst=3 nodelay;   #配置请求限制,指定遗留3个请求到下一秒执行,其他请求无延时返回
        #limit_req zone=req_zone burst=3;
        limit_req zone=req_zone;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}
重新加载 nginx 配置
nginx -s reload -c /etc/nginx/nginx.conf 
或
systemctl reload nginx
使用ab测试工具进行压测
ab -n 20 -c 20 http://localhost/index.html

© 著作权归作者所有

共有 人打赏支持
神奇Sam
粉丝 22
博文 41
码字总数 27998
作品 0
广州
程序员
《Python自动化运维开发实战》课程配套手记内容列表

自动化实战课程的手记内容手记列表 各位同学,《Python自动化运维开发实战》实战课中的配套手记内容列表如下,供大家参考学习,已经出的手记将参考大家的实际情况进行补充,其他的配套课程整...

幕客技术
01/12
0
0
【Nginx探究系列二】Nginx配置篇之客户Nginx白名单访问配置

一、简介 在通常情况下,使用 nginx 基于 ip 限制访问请求频率等限制内容,我们会需要对特定ip进行限制排除操作,因此本文引入了基于nginx geo 与 nginx map 进行此类情景相关配置; 在没有人...

开源中国首席撸码官
2015/10/10
2.2K
0
Multi-Stage Build多阶段Build Docker镜像

我们在上一篇手记 中给大家介绍了如何完全使用Docker搭建Angular开发和测试环境,今天我们接着这个话题给大家看看如果通过Docker部署Angular项目。 我们先看看假如没有Docker,我们一般怎么去...

麦兜搞IT
05/29
0
0
nginx报错打开文件数过多

一、问题 nginx连接数暴涨,查看error.log文件,发现很多 二、原因 Linux是限制系统/应用/用户打开文件的数量的,当应用已经打开了上限数量的文件,再有打开新的文件的请求,之前打开的文件又...

降龙罗汉
2016/03/15
140
0
Nginx配置:防盗链、访问控制、解析PHP以及代理

一、Nginx防盗链 防盗链是指一个网站的资源(图片或附件)未经允许在其它网站提供浏览和下载,尤其热门资源的盗链,对网站带宽的消耗非常大,设置防盗链以节省资源。 1、修改虚拟主机配置文件 ...

BatmanLinux
03/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Django支持中文

django是支持中文界面, 先找到Django语言包安装目录,我的在: /usr/local/python3/lib/python3.6/site-packages/django/conf/locale 有zh-Hans和zh-Hant两个文件, 其中zh-Hans是简体中文,...

MichaelShu
26分钟前
1
0
迷宫问题:顺序栈解法

采用顺序栈以及回溯法,一个比较简单的问题,但是从来没有写过,也算是弥补一下自己欠数据结构的债吧,居然也花了一个半小时,无地自容了。。 定义好数据结构求解算法就显得容易一些了。 st...

LoSingSang
33分钟前
0
0
Zookeeper 概述及应用场景

一、概述 分布式协调技术,主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。 ZooKeeper是一个分布式的,开放源码的分布式应用...

PeakFang-BOK
40分钟前
1
0
(译)OpenGL ES2.0 – Iphone开发指引

教程截图: OpenGL ES 是可以在iphone上实现2D和3D图形编程的低级API。 如果你之前接触过 cocos2d,sparrow,corona,unity 这些框架,你会发现其实它们都是基于OpenGL上创建的。 多数程序员...

robslove
51分钟前
0
0
金九银十跳槽季,程序员面试点解析之Java专场

前言 近年来Java工程师这个岗位炙手可热,市场需求大,学习Java的人也越来越多,所以IT企业与求职者的选择都比较多,那么IT企业在面试时都会提哪些问题呢。下面为大家分享 Java高级工程师面试...

老道士
53分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部