購読者ユーザでもキャッシュを効かせてみる

購読者ユーザでキャッシュ

現在、購読者ユーザでキャッシュを効かせるオプションを開発中です。 a-blog cmsではログインしている状態では、キャッシュが効かない状態になります。 しかし、購読者ユーザは自分のプロフィールぐらいしか編集できないので、基本的にキャッシュが効いている状態が望ましいです。

仕組み

この仕組みはオプションにしてconfig.system.yamlで設定を切り替えれるようにしたいと思ってます。たぶんデフォルトはOFFです。

オプションを有効にすることにより、管理ページ以外にキャッシュが効くようになります。 しかし問題になってくるのが、管理パーツなどのキャッシュしたくない所です。

ここは、post_includeで解決する事を考えています。 また下のコードの様に、新しくキャッシュを効かせないhiddenを用意してあります。 これはpost_includeの時にしか効かないオプションにする予定です。

a-blog cmsでnginx(キャッシュサーバ)を使ってみる

nginxとは

wikipedia参照 > "nginx(発音は「Engine-X」)は、オープンソースのWebサーバであり、HTTP, SMTP, POP3, IMAPのリバースプロキシとしても機能する。高い並行性と処理性能、メモリ使用量の小ささに重点を置いて開発されている。BSD-likeライセンスでリリースされている。"

つまりApacheと同じwebサーバの事ですが、ここで重要なのはリバースプロキシとして高速に動作するという点です。

今回やってみたことは、表側にnginxをキャッシュサーバとして置き、裏側のApacheにa-blog cmsをインストールするという構成になります。(下の図参照)

サイト速度を改善する(その1)

サイトの表示速度は(ごくわずかの効果かもしれませんが)SEOの観点からみても重要です。
a-blog cmsではキャッシュ機能を使うことで、サーバーキャッシュを作ることができます。アクセスがある度に動的にhtmlファイルを生成するところを、キャッシュしておくことで高速化しています。

キャッシュ機能を有効にしている場合、サイバーキャッシュによる高速化の他に、htmlファイルはgzip圧縮されています。これはブラウザにある開発者ツールなどを使ってそのページのレスポンスヘッダーを確認することで確認ができます。
下記のように表示されていましたらgzip圧縮されています。

サイト速度を改善する(その2)

前回、サイト速度を改善する(その1)でgzipに圧縮することによるサイト速度の向上について紹介しました。今回は、そのgzip圧縮の作業を効率よく行う方法を紹介します。
Node.jsとgulpを使って圧縮の自動化を行います。ローカルのMac環境を例に圧縮の自動化を説明します。