由 James Qi, 2022年9月19日 让CDN缓存json等API数据 在《Drupal网站接入CDN》和《MediaWiki网站接入CDN》中,为了让Cloudflare和百度云加速缓存html页面,都是修改了header中的Cache Control:Drupal站:在html.tpl.php中添加header("Cache-Control: public, max-age=7200,
由 James Qi, 2021年9月3日 CDN对错误状态的缓存时间 同事发现我们对一些采集爬虫进行限制后,给出的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
由 James Qi, 2021年6月17日 Apache安装mod_remoteip获取CDN背后访问者真实IP 去年就开始使用CloudFlare为网站加速,因为当时那个网站与访问者IP地址关系不大,所以没有特别处理CDN代理IP和访问者真实IP。今年添加的一个网站在做爬虫屏蔽的时候与用户真实IP有关,临时可以用简易的方式在PHP程序中获取: if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP']; } elseif (isset($_SERVER['
由 James Qi, 2021年5月27日 Drupal网站接入CDN 去年我们将EmojiAll网站接入了CloudFlare,这个网站是用Drupal来搭建的,也遇到一些清除缓存等小问题,都是同事们逐步发现、逐步解决。最近陆续接入了其它一些域名,我也多花了一些时间来了解,下面记录一些要点。 先去网上搜了相关关键词,发现Drupal有一个专门的CloudFlare模块,其主要功能是: 显示访问者真实IP地址,而不是代理服务器的IP地址; 除了安装这个模块以外,Drupal 7还需要在settings.php中添加: if (isset($_SERVER
由 James Qi, 2021年5月27日 使用百度云加速免费版和收费版 去年10月我们在 www.emojiall.com 开启了CloudFlare的缓存和防护功能,当时用的免费到,直到今年才改为了付费的专业版,中间也摸索了很多地方。对我们来说最大的问题是不支持中国节点,也就是说中国浏览者还是需要访问放在国外的服务器上缓存内容。 于是我们也在寻找合适的国内CDN服务商,以前曾经尝试过阿里云的CDN、全站加速,这次从CloudFlare网站中的帮助文件看到百度云加速是他们在中国的合作伙伴,也提供免费套餐,于是就去看了看,发现百度云加速与CloudFlare有很多相似之处。 首先那我的个人博客作为接入百度云加速的首个尝试
由 James Qi, 2021年3月17日 使用Cloudflare的免费和付费CDN服务 CDN是一个很老的概念了,印象中是很贵、只有大型网站负担得起,国内也有一些服务商提供免费的试用,很久前用过国内一个不知名的免费CDN(名字都忘记了),后来也用过阿里云的CDN免费试用,然后转成收费的(只用了一个很小的网站,流量很低,所以收费也很少)。 听说国外的CF (Cloudflare)提供免费CDN有几年了,不过一直都没有试用,去年我们把EmojiAll这个站放到了CF上,大约可以缓存30%-40%的访问,有一定的效果,尝试付费却没有支付成功,就一直用的免费版本。