首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PageAdmin CMS建站系统防范恶意爬虫的笔记分享

PageAdmin CMS建站系统防范恶意爬虫的笔记分享

原创
作者头像
极光科技
发布于 2026-10-17 21:55:40
发布于 2026-10-17 21:55:40
150
举报

最近有用户反映学校官网越来越慢,打开网站后发现100多kb的图片要几秒才能加载完毕,通过运维工具看到入站请求每秒高达3000多条,数据库的cpu占用了超过80%,由于网站采用PageAdmin CMS制作,咨询官方技术后得出结论就是存在恶意蜘蛛或爬虫,知道原因后开始着手解决,解决步骤如下,顺便做一个笔记。

1、查看nginx请求日志查找原因

查看日志后发现,每秒有几千条访问记录,这种明显就不是正常的浏览新闻,每条的请求记录referer项都是空,从这点可以判断是恶意爬虫频繁爬取站点资源和页面。

2、nginx配置防盗链

网站图片没有做cdn缓存,也没有在后台启用远程oss储存,大量的爬虫爬取图片资源,服务器带宽很容易耗尽,这就是打开网站图像加载缓慢的主因。

在nginx添加以下防盗链配置:

代码语言:javascript
复制
location /upload/ 
     {
       root /srv/wwwroot/ecreator/;  # 项目实际路径
       
       # 防盗链配置 改为你的域名
       # valid_referers none blocked domain.cn *.domain.cn;
       valid_referers  domain.cn *.domian.cn;
       if ($invalid_referer) {
            return 403 ;
        }
     }

location /templates/ 
     {
       root /srv/wwwroot/ecreator/;  # 项目实际路径

       # 防盗链配置,改为你的域名
       # valid_referers none blocked domain.cn *.domain.cn;
        valid_referers  domain.cn *.domian.cn;
        if ($invalid_referer) {
            return 403 ;
        }
     }

3、开启静态功能

网站部署上线后,一直使用的是动态页面,爬虫每次爬取都会连接数据库进行查询,大量访问进来,数据库cpu必然飙升,主要原因如下:

高频并发‌:短时间内发起成千上万次请求,导致数据库连接数激增,线程调度开销变大。

深度遍历‌:爬虫可能遍历所有 ID 或分页参数,导致大量重复或全量数据查询。

复杂查询触发‌:如果爬虫构造了特殊参数,可能触发后端复杂的联表查询或聚合操作。

缓存穿透/失效‌:如果爬虫请求的是未缓存的动态内容,或者故意请求不存在的资源(导致缓存穿透),所有压力都会直接透传到数据库。

解决办法:

强制外网访问静态页面,PageAdmin CMS平台版本有很强大的静态配置功能,开启步骤如下:

3.1:进入应用后台>站点设置,如下图:

站点静态功能:选择开启

前端页面访问模式:有三个模式,分别是:动态页面模式、动静态混合访问模式、内部Ip访问动态,外部访问静态文件模式

这里选择第三个,很多用户认为开启静态后运维麻烦,实际上PageAdmin的很多操作如发布内容,更新栏目等默认都会同步刷新关联的静态页面文件,当然修改模版这类操作还是需要手工去生成静态,但是比起收益,增加一点运维时间成本也是必要的。

3.2:第一次开启静态功能,需要全量生成所有页面的html文件,进入Html刷新菜单,如下图:

可直接一键刷新所有栏目、内容页和所有专题页面。

实测:11万多条新闻数据,生成时间大概15分钟左右,如下图:

PageAdmin生成静态是采用后台异步多线程的模式,点击生成按钮后就可以离开,不需要在原页面等待,这点比其他cms做得更人性化。

以上就是本次官网防范恶意爬虫的实操记录,希望能帮助大家。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 1、查看nginx请求日志查找原因
  • 2、nginx配置防盗链
  • 3、开启静态功能
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档