最近 Calibre- web 演示的网站的服务器压力比较大,每次开放游客浏览以后都会频繁出现502。经常出现这种情况,我尝试分析了一下,找到三个主要的原因。
第一个原因是服务器内存小导致的,服务内存只有512M,能勉强跑起来一些小程序,如果数据查询和访问量比较多,服务器必然会比较吃力。
第二个原因是Calibre-web程序设计的原因,很多请求是根据浏览器和访问特征返回数据,一个url可能返回不同的内容,并没有使用动态数据和静态数据分离,整体是一个动态网站,如果不进行改造,cdn内容加速都不能上。需要定制开发做相关的动态、静态请求的分离,把固定不变的内容进行缓存以后才能更少的减少服务器资源消耗。
第三个原因是因为网站开放访问,正常人类请求并没多少,但各种各样的爬虫(MJ12bot、DotBot、AhrefsBot)请求太过频繁,大部分服务器资源都消耗到了应对采集爬虫的访问请求了。
[……]