Articles of 速率限制

在Apache或Nginx上限制每个请求的下载和上传速度

我目前正在运行几个Web服务器(一个是基于Apache 2.4,另一个是运行nginx 1.8)。 我需要为每个单独的GET / POST请求设置速率限制,以限制下载和上传速度。 我已经search了,但我发现每个解决scheme似乎只关注下载速度,我也找不到一种方法来设置限制也从客户端发送到请求体内的服务器的数据。 我需要这个,因为大多数请求都与file upload有关。 任何build议将不胜感激。 谢谢!

如何限制在Linux / Postfix主机上的传出电子邮件?

背景:我是戴维·艾伦“ 做事已做”的粉丝,这意味着当一封电子邮件到达我的收件箱,如果我可以立即回复,我想这样做,并保持我的收件箱清晰。 但有一个问题:如果我立即回复,我得到答复的机会就会上升。 所以我想通过拖延一些传出的消息来限制我的电子邮件。 一个小时,四个小时,甚至一天的延误将适合我的需求。 我的问题是如何在运行postfix的Linux系统上最好地实现这个想法? 这里有几点意见: 我可以很容易地把一个X-Delay:头部放在任何传出的消息中,说这个消息应该被延迟多less。 我可以很容易地介入我的邮件用户代理和sendmail之间的东西。 电子邮件是我接近任务关键的服务。 发出的邮件必须完全可靠。 我想避免复制已经在Postfix中的可靠队列服务。 看来Postfix 几乎已经有我想要的了。 有一个名为header_checks(5) ,它将检查标题并采取行动,但是,虽然有将邮件放入“保留”队列的动作,但没有将邮件放入“延迟”队列的动作。 如果我可以可靠地将邮件以适当的时间戳(即将来N小时)发送到“延期”队列,我认为我的问题将得到解决。 所有的build议是受欢迎的,虽然我不希望在修补Postfix的业务…

每个客户端的Apache带宽限制,通过子网

我们有兴趣限制HTTP客户端的每秒请求数和/或可用带宽,以阻止意外的DoS。 我们提供免费的科学数据和networking服务,可悲的是一些用户的脚本performance不好。 我知道有很多Apache mod可以让你节省每个客户端的IP地址,但是问题是,有时候我们会看到有人从他们的集群中进行分布式爬取(现在这导致平均负载大于200次!)。 我真正想做的是节制per / 24子网,但不必事先指定哪个子网。 理想情况下,我也希望能够以最大上限的比例来做到这一点,所以如果我们只看到来自一个子网的请求,他们就可以使用所有服务器的资源,但是如果两个子网竞争,每个使用一半。 这是可能的与以下任一: Apache mods 交通pipe制 代理服务器 别的东西? 谢谢! 编辑:几个更进一步的东西…如果有什么需要在networking基础设施级别(如路由器),这是我们的责任,并成为一个即时PITA。 所以我希望find一个解决scheme,只需要在服务器级别进行更改。 另外请不要冒犯,如果我花了一段时间来挑选一个胜利者,这是一个新的话题给我,所以我想读一下这个build议有点:-)

根据IP调整或忽略请求

有什么我可以用来设置规则的Apache 暂时抑制或忽略任何IP地址,每秒X的请求数量? 如果有一个Apache模块,这将是非常好的。 我看了一下mod_bandwidth和mod_limitipconn但是看起来他们是基于带宽的,这对我来说很难根据每个IP请求的数量来确定带宽。 我会很高兴在Apache上使用一些可以在标准Linux服务器(Fedora或CentOS)上运行的东西。

Nginx限制推荐人的速度?

我已经成功地设置了IP地址的速率限制, limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 但我想知道是否有可能做同样的推荐人? 例如,如果一个网站被放置在第三方网站上的iframe中,会产生太多的stream量来处理。 我找不到任何地方的引用的任何nginxvariables。 我不想完全阻止stream量,只是限制来自iframe的stream量。 这可能吗? 或者可以用不同的方式实现解决scheme? 谢谢。

在将文件复制到SMB安装的NAS驱动器时限制networking速度

我有一个相当温和的Ubuntu盒子(Jaunty)作为一个小型的networking服务器运行。 每天晚上,我有一个cron作业tar / gzip的重要目录,并做一个简单的cp复制到一个备份的NAS驱动器已经SMB本地安装(有效的“非现场”备份) 与盒子的networking连接是802.11G(54Mbps),所以自然很慢,但问题是当文件被复制时,networking服务器和路由器之间的无线带宽被复制程序完全饱和,请求要么被拒绝,要么响应速度非常慢。 我已经尝试在独立模式下使用Trickle来限制复制过程,但这似乎没有任何区别。 任何人有build议或build议? 我怀疑我需要在服务器上运行某种forms的QoS,但真正有NFI。 希望有一个简单的银子弹解决scheme;) 谢谢,Xerxes

Linux内核3.0.0 i7 CPU过热并locking

在Linux内核3.0.0(3.0.0-10-server)下,使用i7 CPU(Intel(R)CoreTM i7 CPU 950 @ 3.07GHz)的服务器一般能够正常工作,但是当它处于重负载时过热(如“传感器”程序所示)并locking(控制台上的“CPU温度过高”消息)。 我有cpufreqd守护进程正在运行,它将CPU速度从3060000赫兹节stream到1596000赫兹。 但是这还不足以在重负载下降低CPU温度。 我怀疑某处有风扇/散热器/导热膏问题,我将首先检查一下。 还有什么我可以做的,以减缓CPU,以防止过热?

如何防止nginx调节与维护模式冲突?

我们使用HttpLimitReqModule nginx mondule进行速率限制,并发现它与我们的“ 维护模式 ”冲突,因为这两个组件都使用http状态码503 。 当激活限制(通过limit_req指令)时,nginx通常会提供一个503,但不幸的是我们的维护模式位置被使用,导致我们的Amazon S3托pipe维护页面302。 一个302节制的请求不是一个好的结果 。 我想知道其他人如何处理这个问题? 例如,我应该为我们的维护页面使用不同的状态代码,但是如果是这样,是什么? 理想情况下,对于受限制的请求,我不希望提供任何页面,只有503响应头 – 它需要尽可能轻量级,因为整个问题是阻止服务器不堪重负。 作为参考,这是我们用于“维护模式”的nginxconfiguration: server { … # Redirect processing of 503 error pages into a named location: error_page 503 @maintenance; # "Maintenance Mode" is off by default – Use a nginx variable to track state. set $maintenance off; # Switch on "Maintenance […]

如何在使用第三方API时解决IP白名单问题?

我们使用API​​将拒绝请求的服务,除非源IP先前已被列入白名单。 他们只给我们3个插槽,这是一个问题,因为我们有超过3台机器需要使用API​​。 解决此问题最常用的技术是什么? 注意:我没有试图针对第三方API的条款和条件做任何事情。 我们正在使用ResellerClub ,我联系他们要求更多的插槽,但他们回答: 我请求你把你的服务器路由到一些IP地址。 因此,这个问题。 思考: 我认为我们可以通过运行一种代理作为一个中间人来解决问题。 我们没有向第三方发送API请求,而是向第三方发送请求,这样所有的请求似乎都来自于他们眼中的一个IP。 有没有共同的软件做这种事情? 这样做似乎比下面的想法更简单,但我错了吗? 正在使用“一个NAT实例”,我应该看看? 例如http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html 。 看起来很复杂 – 有没有更简单的解决scheme? (运行额外的networking复杂性的额外实例是一个耻辱)。 由于我们使用Docker, Weave是否可以相关? 我们可以附加一个静态IP到VPC网关吗? 我看到使用AWS Storage Gateway( 源代码 )是可能的 – 虽然不知道常规的vpc igw吗? 我们的体系结构:我们使用AWS,并将我们的实例放在ELB后面运行的VPC中。 我们经常在不知道IP地址的情况下提出新的实例。 我们在所有机器上运行相同的软件。 机器运行CoreOS,我们的应用程序在Docker容器中运行。

有什么好的程序可以用来限制服务器上的stream量?

我们有一些应用程序在我们的服务器(Windows 7)上占用networkingstream量 ,而牺牲其他(更重要的)应用程序的代价。 有一个简单的方法来限制这个特定的应用程序的带宽使用情况或什么? 这本质上是stream媒体video,我们想限制它,只能使用我们分配的一定数量的下载带宽。