あれもしたい、これもしたい。18「Cloudflare」で構築する「ずるいキャッシュ」を紹介したいと思います。この当サイトでも「Cloudflare」で構築する「ずるいキャッシュ」方法を施せば、リクエスト開始からページデータのダウンロードが完了するまでの時間が、たったの20msから40msになりました。今回は想定としてみんなが大好きなWordPressでの環境の解説になります。WordPress以外のサイトでもこの「ずるいキャッシュ」を効かせることができます。向いていないサイトもあるので、仕組みとデメリットを先に述べておきます。第三者が提供しているブログサービスなどでは独自ドメインを採用していても利用できない場合が多いので先に「Cloudflare」との相性を各自ご確認ください。まとめ「Cloudflare」で構築する「ずるいキャッシュ」の仕組みこのキャッシュの仕組みは「Cloudflare」のサービスを利用します。Network)サービスの一種で、サーバーサイドにキャッシュはせずにサーバーとエンドユーザーの間に入って代わりにデータを配信してくれるものです。普通にキャッシュして配信するのは、普通に「Cloudflare」のサービスを利用すれば実現できることなんですが、今回は設定を追加し、ページのデータそのものを「Cloudflare」に持たせることで高速化を図ります。「Cloudflare」で構築する「ずるいキャッシュ」のデメリット先に「Cloudflare」で構築する「ずるいキャッシュ」のデメリットを述べておきます。デメリット1:すべてのキャッシュを「Cloudflare」に委ねる「Cloudflare」の構造上、すべてのサイトのデータは「Cloudflare」を経由して表示されるので、「Cloudflare」にトラブルが発生した場合に、サーバーに問題がなくてもエラーが表示され、ページが表示されなくなります。確かに数年前までは「Cloudflare」もよくトラブルが発生し表示されないことも多々ありました。現在「Cloudflare」の品質も向上し、そのような事態は稀なものとなっているんじゃないかと思います。当サイトでも今回紹介するキャッシュ方法を施してほぼ1年になりますが、エラーで表示できてないという現象は一度も経験しておりません。(確認できない範囲の短時間では発生している可能性は否めませんが)デメリット2:「Cloudflare」の無料プランだと2時間毎にしかキャッシュをパージできない(解決策あり)「Cloudflare」の無料プランだと2時間毎にしかキャッシュをパージ(削除)できない仕様になっています。手動でパージ(削除)できるので、新規投稿をする場合にはとくに困らないのですが、コメント欄などはパージ(削除)されるまで新しいものが表示されないなどの問題があります。「Cloudflare」が提供しているAPIを利用すれば定期的に(30分ごととか)キャッシュをパージ(削除)できるようになります。解決策については後述します。デメリット3:キャッシュされてはいけないものまでキャッシュされてしまう(解決策あり)ページのデータごとキャッシュされるので、たとえばWordPressの場合、「Cloudflare」側にキャッシュされるタイミングがログイン状態でアクセスしたタイミングになった場合、「管理メニュー(ページ上部に表示されているメニュー)」やアーカイブ上の「非公開記事」や「編集」ボタンなどが表示される場合があります。そのままログインされることはないのですが、ユーザー名や非公開記事のタイトルなどが表示される可能性もあります。回避策としては管理画面などは通常のブラウザでアクセスし操作しても良いのですが、外部に公開される領域を確認する場合などに関してはログインが継続されていない環境、つまりブラウザに備わっている「プライベートモード」などでアクセスすることでこれらの問題は解決できます。「Cloudflare」で構築する「ずるいキャッシュ」のメリットこれらのようなデメリットはあるものの総合的にはメリットの方が上回っていると筆者は思います。デメリットを上回るメリットにはどんなものがあるのでしょうか。メリット1:とにかく簡単に設定できるたとえばWordPressの場合、キャッシュの設定をするにはプラグインを用いたりします。キャッシュ系のプラグインは多々あり、またさらにテーマやサーバーサイドとの相性があったりして、負荷がかかったりします。「Cloudflare」ではサーバー側でキャッシュするのではなく、CDNとして動作し、サーバーとエンドユーザーの間に入ってキャッシュデータを配信してくれます。これらは「Cloudflare」側で設定するだけで簡単に実現でき、キャッシュ生成などでサーバーには負荷がかからず、逆にサーバーへのリクエスト、アクセス数を減らすことができます。メリット2:とにかく速い「Cloudflare」はCDNのサービスですので世界各国に配信ネットワークが張り巡らされており、日本にも東京と大阪の二ヶ所に配信拠点があります。サーバーが日本になくても国内にあるサーバーへアクセスするのと同様のアクセス速度が期待できます。当サイトもこの方法でキャッシュを行なっていますが、ページデータ自体は概ね20msから40msの範囲でダウンロードされており、アクセス速度が向上も体感的にも感じられるほどです。Update(スピードアップデート)」なるものを実施しました。これは「ページの読み込み速度も検索の順位に反映させますよ」というもので、今ではページの読み込み速度を向上させることもSEO対策の重要なポイントとなっています。普通に「Cloudflare」を利用しても速度向上は期待できますが、今回紹介する方法を用いればさらなる向上も期待できるんじゃないでしょうか。スポンサーリンクCloudflareで構築するずるいキャッシュの設定手順では、ページ自体をキャッシュさせる手順を紹介します。今回はWordPressに適した設定内容で記載しています。「Cloudflare」のアカウントの作成や「Cloudflare」のDNSの設定方法については省いていますので、ご了承ください。下記の説明はすでにアカウントを登録しており、「Cloudflare」上でDNSの設定、キャッシングの設定されているものとします。Rules」を設定してページをキャッシュさせます。Rules」を選んでください。Rules」の設定画面が表示されます。Rules」は3つまで設定できます。今回紹介するWordPressを想定した設定方法(バックエンドで動作している管理画面を有するような)では2つのルールを追加します。管理画面がない純粋な静的サイトであれば1つのルールのみ追加します。Rules」でページデータをキャッシュさせる設定を施します。Rule」をクリックして新規のルールを作成します。matches」の項目に全データがキャッシュ対象になるように記入します。当サイトのアドレスの場合であれば「karelie.net/」となります。サブドメインの有無に関係なく動作させるため、初めにワイルドカードを付けています。everything」を設定し、上記のURLに該当する場合、全データをキャッシュするように設定します。TTL」に(無料プランでは)最短の「2hours」を設定します。自動的に2時間毎にキャッシュがパージ(削除)されます。短い時間でパージさせたい場合は後述する「Cloudflare」が提供しているAPIとCronを組み合わせて実現することが可能です。Rules」で管理画面のキャッシュを回避する設定を施します。Rule」をクリックして新規のルールを作成します。matches」の項目にはWordPressの管理画面のパスを含めたドメインをワイルドカードで囲むようにして記入します。当サイトのアドレスの場合であれば「karelie.net/wp-admin/」となります。(WordPressの設置方法によっては「karelie.net/wp/wp-admin/」となる場合もあります。そのような場合は「karelie.net/*wp-admin/」と設定しても良いと思います。Level」で「Bypass」を設定し、上記のURLに該当する場合、キャッシュを無効化させます。Perfomance」を設定します。Loader」「Mirage」「Polish」の設定が無効になります。これで、管理画面内のキャッシュが無効になります。Rules」の設定項目の順番を確認する上記の設定で矛盾するのは一方では全データをキャッシュさせるように設定し、もう一方では一部のデータをキャッシュさせないようにしていることです。Rules」ではルールの順番で優先順位を決めることができます。今回の場合は、下記のように「管理画面のキャッシュを回避する設定」が上部にあれば大丈夫です。Rules」の動作確認これで設定が完了しましたので、実際にキャッシュが聞いているか確認してみましょう。Chromeの「検証ツール」の「Network」からページデータを選択し「Headers」の項目を確認してみましょう。HIT」という項目があるはずです。これが表示されてれば「Cloudflare」上でキャッシュされているということになります。初回のアクセスではキャッシュが表示されないのでご注意ください。ちなみに今回のテストでは「Cloudflare」でページがキャッシュされていた場合、リクエスト開始からレスポンスの最終バイトを受け取るまでにかかった合計時間は、なんと「26.70ms」でした。時間帯やアクセス場所によって異なる結果になりますが、この数値は驚異的です。この「ずるいキャシュ」を設定しなかった場合は、「665.14ms」と悲惨な結果でした。「Cloudflare」のキャッシュ削除の頻度を変更する前述した手順ですと無料プランの場合、キャッシュの自動削除の間隔は「2時間毎」となってしまいます。更新頻度やアクセス数の少ない場合、「2時間毎」でなんら問題はないですが、コメント投稿が頻繁にあるサイトなどの場合、キャッシュの自動削除の頻度をもっと短くしたくなるのが人間の性というものです。「Cloudflare」が提供しているAIPとcronを併用することでこの問題を解決できます。cronの実行環境は各自でご用意ください。レンタルサーバーの場合、概ねサービスとして提供されています。VPSの場合はコマンドを叩いて設定できます。何もない場合は無料のcronサービスなどもあります。ID」を取得する方法メニューより「Overview」を選びます。ID」が表示されています。key」というリンクがあるのでクリックしてページを移動してください。Profile」のページに移動します。Key」があるので「View」をクリックしましょう。Key」が表示されます。「Cloudflare」のAPIに項目を追加する次に「Cloudflare」のAPIに先ほど取得した項目を追加します。Key}」の項目を適切なものに置き換えてください。'{"purge_everything":true}'「Cloudflare」のAPIをcronで実行させる「Cloudflare」のAPIを10分毎、30分毎にcronで実行させるには下記のような設定になります。'{"purge_everything":true}'まとめ「Cloudflare」で構築する「ずるいキャッシュ」方法はいかがでしたでしょうか。向いているサイトとそうでないサイト。「Coudflare」が止まってしまうとサイト自体にアクセスできなるという可能性もありますが、ページ自体もキャッシュし高速化を図るには魅力的な手段じゃないでしょうか。皆さんも是非お試しください。18.04にsshをインストールし接続・ログインできるようにする方法2018年8月14日ひょんなことからMacにUbuntuをインストールすることになった。ウィジェット画面に移動してウィジェットをこのウィジェットエリアにドラッグしてください。フッターウィジェット画面に移動してください。ウィジェット画面に移動してウィジェットをこのウィジェットエリアにドラッグしてください。フッターウィジェット画面に移動してください。ウィジェット画面に移動してウィジェットをこのウィジェットエリアにドラッグしてください。フッターウィジェット画面に移動してください。GeneratePress。