nginx代理用于诱导延迟以避免ddos

时间:2015-03-06 01:21:21

标签: nginx proxy ddos

我们目前正在使用基于算法的重复请求的延迟,该算法决定延迟响应以减慢请求系统的时间量。我们的网站运行在apache和php。

问题是,这种策略也会影响我们的系统,因为正在睡觉的进程被锁定。

因此,我们正在考虑采用以下方法。

  1. nginx代理任何传入的请求,并以apache和php
  2. 传递给主站点
  3. 网站根据当前算法决定延迟时间。
  4. 它不会在进程中休眠,而只是将延迟时间添加为自定义标头并返回响应。
  5. 然后
  6. nginx将检查标头是否存在以及是否存在,将请求发送到nodejs中的另一个应用程序
  7. nodejs应用程序将只读取延迟时间并在延迟时间之后将请求置于超时状态,并使用延迟标头返回响应,其中"成功"作为价值
  8. 然后,nginx将使用标题
  9. 将请求发送到主应用程序
  10. 如果传入请求的标题为"成功"作为价值,它不会对请求做更多的延迟操作,而只是提供正常的响应。
  11. 实现这一目标的nginx配置是什么?

    注意:使用标题作为标志只是我们正在考虑的选项之一。我们还尝试了无效的自定义状态代码。我们还尝试了一个标准状态代码,它也会产生将初始状态代码返回给浏览器而不是最新响应中的状态代码的问题。

    欢迎任何其他建议。我理解,还有其他高级选项来解决ddos,但这是我们的应用程序的必要功能,因为它也被用作其他几个站点的api。

0 个答案:

没有答案