文档章节

Nginx 手记(三)请求限制

神奇Sam
 神奇Sam
发布于 2017/08/30 14:39
字数 565
阅读 441
收藏 0
点赞 0
评论 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
粉丝 18
博文 41
码字总数 27998
作品 0
广州
程序员
《Python自动化运维开发实战》课程配套手记内容列表

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

幕客技术 ⋅ 01/12 ⋅ 0

【Nginx探究系列二】Nginx配置篇之客户Nginx白名单访问配置

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

开源中国首席撸码官 ⋅ 2015/10/10 ⋅ 0

Multi-Stage Build多阶段Build Docker镜像

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

麦兜搞IT ⋅ 05/29 ⋅ 0

nginx报错打开文件数过多

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

降龙罗汉 ⋅ 2016/03/15 ⋅ 0

Nginx配置:防盗链、访问控制、解析PHP以及代理

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

BatmanLinux ⋅ 03/15 ⋅ 0

Varnish调优手记

最近公司做活动推广,流量暴增,后端服务器压力山大,导致用户的请求响应时间延长,客户因此抱怨声音很大。   为尽快解决问题,在安排人员不断优化后端代码的同时,考虑在nginx前增加varni...

nmshuishui ⋅ 2014/05/07 ⋅ 0

Varnish调优手记

  最近公司做活动推广,流量暴增,后端服务器压力山大,导致用户的请求响应时间延长,客户因此抱怨声音很大。   为尽快解决问题,在安排人员不断优化后端代码的同时,考虑在nginx前增加v...

qinerg ⋅ 2013/11/22 ⋅ 14

Nginx Tomcat 配置 https

一. 阿里云申请免费https证书 二. 配置 Nginx 的 HTTPS 1. 创建一个存储证书的目录: 在Nginx主目录下创建cert文件夹,在cert文件夹内创建cjjk文件夹 2. 上传 .key 和 .pem 到cjjk文件夹内 ...

jenopob ⋅ 02/23 ⋅ 0

nginx限制请求数ngx_http_limit_req_module模块

一. 前言 在《nginx限制连接数ngxhttplimitconnmodule模块》 我们说到了ngxhttplimitconnmodule 模块,来限制连接数。那么请求数的限制该怎么做呢?这就需要通过ngxhttplimitreq_module 模块...

技术小牛人 ⋅ 2017/11/07 ⋅ 0

zabbix监控nginx性能状态

nginx在生产环境中的应用越来越广泛,所以需要对nginx的性能状态做一些监控来发现出来出现的问题。zabbix监控nginx,首先确认nginx的监控指标,主要有:基本活动指标,错误指标,性能指标。 ...

科技小能手 ⋅ 2017/11/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 1分钟前 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 23分钟前 ⋅ 0

用户登录信息-钉子效果(基于jquery2.0)

本js效果使用jquery2.0,清晰的分解用户登录信息的(钉子效果),该效果直接用在作者网站(www.phpkhbd.com)上。 里面的难点有:定时器,延时。 大致效果如下: 一开始: 鼠标放上去的时候:...

宁哥实战课堂 ⋅ 25分钟前 ⋅ 0

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 36分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 40分钟前 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 46分钟前 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 46分钟前 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 47分钟前 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 今天 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部