我有一个 php 网站,如果我在浏览器上按下 F5 键,就会得到以下 CPU 负载:
$ w 11:34:54 启动 16 天, 1 分钟, 5 个用户, 平均负载:90,81,32,02,12,57
它来自我网站的每个页面!所以我相信它不是来自算法而是来自 Apache 配置?我对此并不完全确定。
我使用 PHP(带 codeigniter)、mongoDB 和单个连接。我使用全局常量来使用我的连接并每次重复使用它。我不会在每次请求时创建新的连接。几乎所有网页的响应时间都在 300 毫秒以内。
那么它是来自 apache(然后我在正确的 stackechange 网站上提出我的问题),还是来自我的全局 PHP 连接(然后,我将切换到 stackoverflow)。
或者它来自其他参数?如果它来自 apache,有没有办法限制同时的连接数?因为一遍又一遍地加载同一个页面而不等待第一个请求完成并不是正确的行为。
所以有人只需按 F5 就可以关闭我的服务器...如果是 DDOS 的话还可以,但“仅仅”是 DOS...
感谢您,
A。
答案1
您可以尝试以下模块
- mod_evasive(Apache 的拒绝服务规避模块)
- mod_limitipconn(Apache 的同时连接限制模块)
- mod_cband(提供 Apache 2 模块来解决限制用户和虚拟主机带宽使用的问题。)
这线也可能有用
还有一件事。你可以在 apache 后面设置 nginx,因为它具有非常灵活的速率限制功能