我的网站是一个论坛,它有三种types的url:
线程视图:
forum.php?MOD = viewthread&TID = 1256&页= 2
线程列表:
forum.php?MOD = forumdisplay&FID = 125页= 61
显示图片:
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_zone和limit_req_zone来做到这一点。 但事情是,我所有的url都盯着forum.php 。 所以我需要根据不同的参数来限制连接。
谁能帮忙? 谢谢。