キャッシュの難題を乗り越える

WordPressの新しいエディタ、Gutenbergのテストもかねて、投稿してみるよ。今日はNginxのキャッシュをどうするか、というお話。Wordpressってめちゃくちゃ重いんですよね。いろいろなことを簡単にできるようにするために。そして、古いPHPにも対応させるため、新しいコードの書き方など未対応であったり、最適化されにくい書き方であったりして。とはいえ、ブログ書くだけなら、結構構築も簡単だし(苦戦したけど)、使いやすいプラグインも豊富にあったりとで楽なのですが。

つまり、Wordpressの動的出力の処理は大変重たいので、キャッシュを利用して静的出力を利用しようと言うことです。キャッシュの考え方というのは複数あって、一つはゲートウェイ側で対応すること。プロキシという概念もこのゲートウェイ側でしますし、CDNも概念的にはこちらですね。もう一つは、動的出力プログラムを通して別の所に保存する。ファイルであったり、メモリであったり。これを、ゲートウェイ側のシステムが使うのか、動的出力が利用するのか、という具合でしょうか。

文字で表現しようとすると、国語力がないので難しいです。

今回は、Nginxのfastcgi_cache という機能を利用して、キャッシュを作ります。つまり、ゲートウェイ側です。ユーザーからリクエストが送られると、Nginxは、PHPにWordpressのコードを実行するよう命令、PHPから受け取ったレスポンス結果を、fastcgi_cacheの設定の元、どこかのリソースに保存します。以後、設定した時間または設定した容量の間は、そのキャッシュした情報を返します。Nginxは、キャッシュ中はPHPにアクセスしません。そのため、動的プログラム実行による負荷(Wordpressはデータ取得時にデータベースへアクセスします。このデータベースへのアクセスが一番重い処理になります)が無くなるため、負荷を減らせることになります。

さて、このキャッシュ。普通に変な設定をすると設定した時間までは解放してくれません。つまり、新しく投稿したりしてもPHPにアクセスしてくれないので、ユーザーが閲覧できるコンテンツが正規でない可能性があるわけです。

残念ながら、まだキャッシュのテスト中なのでどのように設定したりプラグインなどを導入したりするのがいいかわからないので、進展があったら、書こうと思います。

飛竜猫
  • 飛竜猫
  • 飛竜猫と書いて「とりゅねこ」という、三重県四日市市在住で名古屋へ勤務してるプログラマー兼ネットワークエンジニア。プログラム言語は、C#言語とPHPがお気に入り。サーバー構築はRHEL系のNginxがお気に入り。新しいことを始めることが好きだけど、最近は早すぎて追いつかないよ!

    アニメ視聴にスクーターでぼっちツーリングしたり、電車や鉄塔見に行ったりと自由奔放な趣味で、IT関係の趣味は、自作パソ構築したり動画編集してみたりと...いろいろチャレンジしてます。

    さすがに、新しいことのチャレンジは、年齢的に厳しくなってきたような気がする...

    どちらかというと理数系なため、文章書いたりするのはかなり苦手です

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です