By 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,
By 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
By 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['
By James Qi, 2021年5月27日 Drupal網站接入CDN 去年我們将EmojiAll網站接入了CloudFlare,這個網站是用Drupal來搭建的,也遇到一些清除緩存等小問題,都是同事們逐步發現、逐步解決。最近陸續接入了其它一些域名,我也多花了一些時間來了解,下面記錄一些要點。 先去網上搜了相關關鍵詞,發現Drupal有一個專門的CloudFlare模塊,其主要功能是: 顯示訪問者真實IP地址,而不是代理服務器的IP地址; 除了安裝這個模塊以外,Drupal 7還需要在settings.php中添加: if (isset($_SERVER
By James Qi, 2021年5月27日 使用百度雲加速免費版和收費版 去年10月我們在 www.emojiall.com 開啟了CloudFlare的緩存和防護功能,當時用的免費到,直到今年才改為了付費的專業版,中間也摸索了很多地方。對我們來說最大的問題是不支持中國節點,也就是說中國浏覽者還是需要訪問放在國外的服務器上緩存内容。 于是我們也在尋找合适的國内CDN服務商,以前曾經嘗試過阿裡雲的CDN、全站加速,這次從CloudFlare網站中的幫助文件看到百度雲加速是他們在中國的合作夥伴,也提供免費套餐,于是就去看了看,發現百度雲加速與CloudFlare有很多相似之處。 首先那我的個人博客作為接入百度雲加速的首個嘗試
By James Qi, 2021年3月17日 使用Cloudflare的免費和付費CDN服務 CDN是一個很老的概念了,印象中是很貴、隻有大型網站負擔得起,國内也有一些服務商提供免費的試用,很久前用過國内一個不知名的免費CDN(名字都忘記了),後來也用過阿裡雲的CDN免費試用,然後轉成收費的(隻用了一個很小的網站,流量很低,所以收費也很少)。 聽說國外的CF (Cloudflare)提供免費CDN有幾年了,不過一直都沒有試用,去年我們把EmojiAll這個站放到了CF上,大約可以緩存30%-40%的訪問,有一定的效果,嘗試付費卻沒有支付成功,就一直用的免費版本。