首页 > 解决方案 > 是否有设置过多请求的设置?

问题描述

我正在用 PHP 编程,我想知道是否有办法设置太多请求,还是需要手动编码?例如,如果某人在 60 秒内打开了 30 个页面,则请求太多(并且他们可能是机器人),因此他们收到了太多请求 HTTP 状态代码。

如果应该手动完成,那么设置这样的东西的最佳做法是什么?

标签: phpapache

解决方案


您可以尝试使用Apache 的ratelimit

这是 Apache 提供的示例。特定 IP 的速率限制为 400kb/秒。

<Location "/downloads">
    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 400 
</Location>

更具体地说,您可以尝试使用Mod Evasive 之类的模块来防止多个请求访问服务器。您可以使用CloudFlare 之类的产品来缓解 DDOS 攻击。

如果您真的想为此使用 PHP,您可以记录来自给定 IP 的请求数量,如果来自该 IP 的请求大于某个值,您可以阻止该 IP 访问您的页面。

为此,您可以将 IP 地址与指示他们何时访问您的页面的日期列一起存储在数据库中,并使用 SQL 计算他们在特定时期内的访问聚合。


推荐阅读