ManusAI部署后单IP访问频率限流设置
部署ManusAI系统后,需在Nginx服务器层限制单IP访问频率:使用限流指令定义限流区域,设置每秒请求数与突发量,并加上无延迟防止流量雪崩;同时还可利用映射指令通过请求头区分真实用户与爬虫,实现更智能的限流。
部署完ManusAI,还没来得及庆祝,问题就来了——某个IP开始疯狂调用,沙箱容器一个接一个地创建,Chrome实例崩溃,API响应时间直接飙到让人抓狂的地步。这几乎是每个自建AI服务都会遇到的坎儿。解决办法其实不复杂:在Nginx层把QPS卡死。

ManusAI一旦开放公网访问,立马就会遭遇各种稀奇古怪的请求。单IP高频调用会直接导致沙箱容器创建过载、Chrome实例接连崩溃、API响应延迟飙升。所以,必须立即在Nginx层实施精准的每秒访问频率限制。下面直接说怎么干。
通过Nginx配置文件手动限流(推荐)
先得说清楚一件事:宝塔面板自带的“流量限制”功能,只支持60秒内总次数控制,你没办法用它实现真正的QPS限流。所以,必须直接编辑站点的Nginx配置文件,在http块与location块中协同写入limit_req指令。
第一步,登录宝塔面板,进入网站管理,找到ManusAI对应的域名,点击【设置】,然后切换到【配置文件】选项卡。
第二步,在文件顶部http {大括号内的第一行插入限流区域定义:limit_req_zone $binary_remote_addr zone=manus_ip:10m rate=8r/s;
这行代码的逻辑很简单:把客户端IP压缩成二进制存储,10m内存大约能容纳16万个独立IP状态。需要特别注意的是,rate值必须为整数,不支持3.5r/s这种带小数的写法。
第三步,往下滚动,找到location / {或者location /api/ {块——ManusAI的核心接口通常落在/api路径下。在这个块内部添加启用指令:limit_req zone=manus_ip burst=12 nodelay;
burst=12意味着允许瞬时突发12个请求,nodelay的作用是让这些请求要么立刻通过,要么直接被拒绝,不做排队延迟。为什么一定要加nodelay?因为ManusAI的沙箱容器启动耗时很高,如果去掉这个参数,Nginx会把超频请求匀速释放,结果就是延迟响应导致并发堆积,进而雪崩。
第四步,点击右上角【保存】,然后返回站点设置页,进入【SSL】选项卡,点击【重载配置】。注意,是重载配置,不是重启Nginx——重启会中断所有正在运行的沙箱会话,这个代价可太大了。
使用宝塔防火墙插件图形化限流(专业版可用)
如果你已经买了宝塔专业版或企业版,而且不想手写Nginx语法,那可以用防火墙插件快速开启CC防护。不过,它默认是对全站生效的,需要额外配置才能精准作用到ManusAI的/api路径。
方法一,全局基础防护。进入【软件商店】,搜索并安装【宝塔防火墙】。安装完成后,点击【宝塔防火墙】,找到【CC防护】,开启开关,然后把【单IP每秒请求数】设为8,最后点击【重启防火墙】。
方法二,路径级精准控制,这一步是关键。在【宝塔防火墙】中进入【自定义规则】,点击【添加规则】。规则类型选择【按IP限速】,填写目标域名(比如manus.yourdomain.com),在【URL匹配】栏输入正则:^/api/.*。【触发条件】设为“单IP每秒请求超过”7次,【动作】选择【拒绝访问】。保存后务必点击【重启防火墙】。这里有个容易踩的坑:如果没填写URL匹配正则,这条规则会对整个域名生效,很可能误杀前端静态资源的请求。
区分ManusAI用户会话与爬虫的差异化限流
真实用户和爬虫之间的区别,往往就在一个请求头里。ManusAI的真实用户通常携带着特定的Header,比如X-Manus-Session,而恶意脚本或爬虫不会带这个。利用map指令,我们可以构造一个动态限流键,让合法会话免受限流,只压制那些裸IP请求。
在站点配置文件的http{块顶部(记住,必须在limit_req_zone之前)插入:
map $http_x_manus_session $limit_key {
default "";
~^.+$ $binary_remote_addr;
}这段代码的逻辑是:当请求头中存在非空的X-Manus-Session时,$limit_key取IP值;否则为空字符串,不计入限流统计。
然后,修改限流区域的声明:limit_req_zone $limit_key zone=smart_manus:10m rate=50r/s;
再把location块中的启用指令改为:limit_req zone=smart_manus burst=50 nodelay;
这样配置完之后,带有效会话头的用户请求完全不受限,而那些扫描器、暴力探测脚本之类的裸IP请求,仍然会被严格卡在50r/s以下。这才是真正意义上的智能化限流。
