同事发现我们对一些采集爬虫进行限制后,给出的403拒绝状态也会被CDN缓存起来,造成后续正常用户访问的时候也被拒绝,于是详细了解了各CDN对http/https访问报错状态的缓存处理。
首先是看Cloudflare,其文档 Configuring cache TTL by status code 中有明确说明,如果在没有设置Cache Control的情况下:
- HTTP 200, 301: 120分钟
- HTTP 302: 20分钟
- HTTP 404: 10分钟
- HTT
这是 缓存 分类的页面,点击下面标题查看详细文章内容:
同事发现我们对一些采集爬虫进行限制后,给出的403拒绝状态也会被CDN缓存起来,造成后续正常用户访问的时候也被拒绝,于是详细了解了各CDN对http/https访问报错状态的缓存处理。
首先是看Cloudflare,其文档 Configuring cache TTL by status code 中有明确说明,如果在没有设置Cache Control的情况下:
我们选用Drupal的一个重要原因是其对多语言的支持,在实际使用中也发现多语言支持的一些问题,特别是对数据库负载的影响很大,我们已经想过不少办法了。例如:Drupal设置Memcache缓存、修改缓存翻译词的长度、减少翻译相关数据表的尺寸等。
这两天对一台阿里云RDS负载问题进行排查的时候,再次开启Devel来查看IP Location系列典型页面的SQL查询语句,从几个方面进行了优化:
百度MIP有批量提交API我们用过,看到有清除MIP缓存的API,但以前没用过。最近我们在百度搜索资源平台发现一个奇怪的问题:流量排在最前面的全部都是www.example.com/xxx/node/13865?mip这样的网址,在手机百度里面各种搜索词本来应该是到我们站不同的页面,但却都指向了上面这一个网址,从百度统计中看是从2019年1月5日开始的,但原因找了几天都找不到,在www.baidu.com中搜索结果点击到我们站都是正常的,但m.baidu.com中搜索结果点击到我们站却是错误的。
我们想到可能是百度自己的MIP页面索引出了问题,给资源平台反馈中
MediaWiki的文件缓存(File Cache)在我们实际使用的网站中还是很重要的,可以让访问速度快很多,不过有些页面要求有一定的实时性,缓存过期时间不宜过长,我们以前都是设置的统一过期时间,然后部分页面不生成文件缓存,这些不生成文件缓存的页面往往成为了MySQL服务器中慢查询的来源。
今天先是想了一个办法,Linux服务器上设置crontab,定时执行一个批处理文件,来删除cache目录下的缓存文件,这样可以实现我们需要的对不同页面缓存不同的时间长度,但缺点是设置比较麻烦,而且执行磁盘查找、删除在数据量大的时候比较慢。
后来又想了
Drupal网站对数据库服务器的压力由来已久,特别是Views做成的页面是最可能导致负载升高的原因,无论是以前自己服务器上的MySQL还是换用阿里云的RDS。
以前也采取一些缓存的措施来降低负载,但偶尔会出现一些问题,我翻看以前的博客中记录有《Drupal网站Views生成页面Title改为变量的问题》、《一个Drupal网站Views消失的排查》。
后来Drupal 6升级Drupal 7后似乎有些变化,但我一直也没有深究,基本上都是把Views的查询缓存设置为6天,把显示缓存设置为0,在系列网站的xxx.views_default.
前一段时间发现分省的邮政编码系列网站首页常常会出现一个Views做的Block为空白的情况,例如北京邮政编码首页的“北京地市区县邮编”这一个Block里面没有内容,这样情况以前偶尔比较罕见会发生,例如几个月偶尔见到一次,但最近却成了经常的事情,每次重新清理该网站缓存会恢复,但1、2天后又出问题。
我用阿里云的网站监控设置了对该站首页每隔5分钟读取一次,如果发现没有应该存在的内容就报警,连续几天夜间准点开始报警,先以为是cron运行的结果,但时间不对,后来发现是巡检程序读取head和content的时候偶尔会这样,但具体原因依然不清楚,还是清理缓存后恢复,不久又出错。😢
很早前开始使用MediaWiki的时候就听说了MemCache,但一直没有用过,直到前几个月下力气做Drupal优化,才安装尝试了Memcache,果然是效果明显,对数据库的压力下降了很多,命中率在80%左右,这样即使安装在单台服务器上,也会让该服务器的负载下降不少。当时记录了一篇博客《Drupal单服务器设置Memcache缓存》。
而Memcache的典型应用其实是部署在专门的缓存服务器上,我曾经看过Wikipedia的服务器拓扑图,缓存服务器的数量还不少。我们近期在准备撤掉部分以前的独立服务器转用云平台,所以在试用阿里云的时候留意了有专门的开放缓存服务O
很久前用MediaWiki的使用就听说过Memcache来加速网站,后来用Drupal看一些优化措施中也说到Memcache,但一直没有时间精力去尝试。
前些天把PHP代码缓存的APC模块安装后,看统计数据,PHP程序代码的命中率几乎达到100%,服务器负下降还是比较明显的。就干脆一鼓作气,我和同事配合把Memcache也安装测试。
APC的安装至需要与服务器的PHP环境、模块设置有关,与Drupal程序没有特别的关系,但Memcache除了服务器环境安装以外,还需要对Drupal系统加装模块来利用Memcache,下面就记录一下服务器
前几年一直用MediaWiki,从2006年到2010年,在2011年初改用Drupal后,以前的Wiki网站就基本上停止了更新,MediaWiki的版本也停在了1.16,后来还遇到不少网友站长咨询这方面的事情,我也只好告诉对方后面的版本我都不熟悉了。
虽然网站平台停止了更新,但运用还在继续,除了把一些站的留言关闭外,还是有几个历史悠久的网站保留了用户留言、交互的功能,依然需要解决一些遗留的小问题。近期花了一些时间来解决下面几个问题,记录如下:
这两年国外的垃圾信息没有停,间隔着几天发几条、几十条,挺讨厌的,但又没有到必须用技
从用MediaWiki做网站开始,服务器负载一直就是个问题,为了解决这个问题,我们添加了各种缓存,如MediaWiki的多种缓存机制,包括File Cache,也加上了外部的Squid。后来做Drupal网站并不需要Squid,但因为服务器上已经安装了Squid,我们也只好把Drupal架设在Squid之后,另外Drupal也采用了内部core缓存和Boost缓存。
这些缓存机制可以解决不少问题,但缓存主要对数据量小、每页访问多的网站有明显效果,而对于数据量很大、每页访问少的网站起不到明显效果,有时甚至因为缓存文件过多起到反效果,而且缓存更新机制也有些小问题。
2002-2023 v11.7 a-j-e-0