nginx根据参数限制连接

我的网站是一个论坛,它有三种types的url:

  1. 线程视图:

    forum.php?MOD = viewthread&TID = 1256&页= 2

  2. 线程列表:

    forum.php?MOD = forumdisplay&FID = 125页= 61

  3. 显示图片:

    forum.php?MOD =附件&援助= afklafaklj

因为现在我的网站有很多数据,并且有超过10,000,000个线程,有些人试图通过访问数百个线程列表页面来减慢我的网站。 例如,他们使用curl同时获得下面的链接:

forum.php?mod=forumdisplay&fid=1&orderby=replies&filter=reply&orderby=replies&page=600 forum.php?mod=forumdisplay&fid=1&orderby=replies&filter=reply&orderby=replies&page=7000 forum.php?mod=forumdisplay&fid=1&orderby=replies&filter=reply&orderby=replies&page=869 forum.php?mod=forumdisplay&fid=1&orderby=replies&filter=reply&orderby=replies&page=10000 

这种访问会给MySQL带来额外的压力,并使网站变慢。

所以我想为这些URL添加一个连接限制。 1.对于显示图片和视图线程(types1和3),没有连接限制; 2.对于线程列表(types2),每个IP限制为5个。

我知道我可以使用limit_conn_zonelimit_req_zone来做到这一点。 但事情是,我所有的url都盯着forum.php 。 所以我需要根据不同的参数来限制连接。

谁能帮忙? 谢谢。