WordPress万篇文章站内搜索优化记录elasticsearch配合ElasticPress插件+Search Limiter & Blocker

朝晞小屋资源站优化记录:从卡顿崩溃到企业级方案缓解

一、资源站核心痛点:内容激增引发的系列问题

  1. 网站卡顿与搜索缓慢:随着资源站运营时间增长,WordPress 搭建的站点文章资源数量持续增多,直接导致网站整体运行卡顿,尤其是站内搜索功能,响应速度 “慢的一批”,严重影响用户体验。
  2. 数据库压力濒临极限:大量资源数据存储使得数据库承载的查询压力 “大大的要撑炸了”,长期处于高负荷状态,随时面临崩溃风险。
  3. 无限制搜索引发致命漏洞:站内搜索功能(如链接格式https://www.zxiyun.com/?s=关键词)缺乏限制机制,网友可无限制重复查询,极易触发数据库刷炸问题,此前已出现类似恶意查询搞垮站点的隐患。

二、解决方案:采纳建议的企业级方案

在面临站点运营危机时,参考了推荐的企业级优化方案。该方案虽包含付费项目,但针对个人性质的朝晞小屋资源站,其免费版本功能已完全满足需求,有效解决了数据库查询压力大、搜索无限制等核心问题,缓解了站点卡顿、崩溃风险,保障了资源站后续稳定运行。

第一步呢就是装一个elasticsearch服务ElasticPress插件要用到

elasticsearch这个可以用docker部署

执行以下命令启动 Elasticsearch 容器:

docker run -itd --name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms256m -Xmx512m" \
elasticsearch:7.12.0
----------------------------------------------------------------------版本任选一个即可
docker run -itd \
--name elasticsearch8 \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \
-e "xpack.security.enabled=false" \
-e "xpack.security.enrollment.enabled=false" \
elasticsearch:8.15.0

第二部就是装ElasticPress插件用于把网站所有文章数据转移到elasticsearch服务

Elasticsearch 是底层的搜索引擎服务(负责存储、检索数据),而 ElasticPress 是WordPress 专属的插件,它的核心作用是连接 WordPress 与 Elasticsearch—— 既可以把 WordPress 的文章、页面等数据同步到 Elasticsearch 中,也能让 WordPress 的站内搜索功能调用 Elasticsearch 来实现更高效的检索。

image.png

启动插件后根据向导到下图完成站内文章同步,我的网站一万2000+的文章同步也就1-3分钟吧

image.png

第三步安装Search Limiter & Blocker

这两个插件不需要费劲的到处去找,直接在WordPress插件安装里搜索关键词就可以了

这个插件主要是用来限制用户的搜索频率避免刷关键词 刷爆你的mysql查询

image.png

最后就配置完这两个插件就OK了,第一个同步完成后搜索速度就会加快很多

第二个可以限制搜索频率,大大降低被站内搜索攻击

文章版权声明 1、本网站名称:朝晞小屋
2、本站永久网址:https://www.zxiyun.com/
3、更多有趣网站:http://dh.zxiyun.com/
4、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ2604140139进行删除处理。
5、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
6、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
7、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容