WEBサーバー側のキャッシュ機能がONになっていませんか?【サイト情報が変わらない原因】
すぐにサイト情報が反映されない
これは随分前に私が担当していたWEBサイトのお話です。
サーバー側のキャッシュ機能が最初から自動でONになっていた事に当時は気づきませんでした。
この結果、アップした更新情報がすぐにサイトに反映されずに困ったという経験です。
サイトの更新がされない
とあるHTMLサイトの開設・更新をしていた時のお話です。
私は当初から、このサイトが立ち上げた頃から醸し出す何かしらの重たい雰囲気を感じ取っていました。
更新内容をUPしてもすぐに情報が反映がされないのです。
おかしい。開設時にキャッシュ等の機能はつけた覚えがないのです(ここがポイントでしたね)。
特に難しいシステムを動かしている訳でもなく、単純なHTMLページであるにもかかわらずサイトの更新ができないのです。
3分後位に反映されたり、しばらく反映されなかったりとまちまちでした。
F5等のキーによる更新
通常HTMLサイトであれば、FTP等で上書きをすればF5など更新ボタンを押す事ですぐに反映されますよね。
Wordpressはキャッシュの問題があったりするので制作時は基本的にはOFFにしています。
そして制作時はGoogle Chromeを利用しているので、Shift+F5を押してキャッシュクリアを掛けて確認をしています。
ChromeではShift+F5でキャッシュクリアされる
phpファイルの影響
このサイトは諸事情があり部分的にphpファイルも併用しているので、それが影響しているのかと思っていました。
phpのバージョンを下げたり、CGI版(それに対してモジュール版があります)にしてみたりしましたが思うように改善されません。
特にまずい状態なのが、制作の過程で上記のphpファイルに記述ミスをしていた場合に、正常に表示されていない理由が
・phpの記述に問題があるからなのか
・今回のこの「サイトが更新されない特性」が働いているからなのか
上記の区別がつかないのです。この事象が解決できず長い間苦しんでいました。
修正・確認・修正・確認のデバッグがリズムに乗れない
通常上手く動かない箇所がある場合は、修正をして確認して修正をして確認して、を繰り返します。
いくつか原因が考えられる場合は問題を切り分けして、
問題1-1→確認
問題1-2→確認
問題2-1→確認
と一つずつつぶしていく工程になりますよね。
これが今回の問題の影響により上手く進まないので困りました。
問題1-1→確認ができない
問題1-2もやってみる→問題が解決
となると、解決したのが問題1-1が原因だったのか問題1-2が原因だったのかがわからないのですね。
焦ってイライラもします。
思えば少し時間を経過させれば反映されるのですが、それが待てないのですよ、ふつうは。
仕事中は他の事も立て込んでてイライラもしますしね。今思えばこのメンタル状態が事態を長引かせる原因でしたね。
サーバー区画が圧迫をしている可能性
もしかしたらこのサーバー契約(ロリポップサーバー)の中には他のクライアントのサイトデータも稼働しています。
今回のWEBサイト開設が原因で区画内を圧迫しているからではないかとも考えました。
そうなると、今回のサイト以外にも他のクライアントサイトにも影響が出ている可能性があるのでそれは一大事ですよね。
ディスク容量は十分余裕があるのですが問題は通信過多のところになりますね。
サーバー移転が必要か?
状況によってはこのサイトを別サーバーに移転させる事も考えないといけません。
どうせ移転させるのであれば早い方が良いから、もうやってしまおうかな!とも思っていました。
ただ他のサーバーに移して症状が改善されなかったら身も蓋もありませんよね。
自身のサイト内に問題がある可能性
他サーバーにテストでデータを移設してみた
そこで他のサーバーに本サイトと同じデータを丸ごといれて動作検証をしてみたのですが、そこでも似たような挙動でした。
すぐに反映されていない様でした。(追記:勘違いしていますがその時はわからずでした)
なのでやっぱりこのサイト自体に原因があるとその時は判断しました。
例えば読込しているjsファイルなどが邪魔しているのではないかという可能性です。
しかしJSファイルを全て切ってみたりしましたが一向に変わらずでした。お手上げですね。
ロリポップサーバーサーバー会社側に問い合わせてみた。
契約しているレンタルサーバーはコントロールパネルで通信量の状態(通信過多・サーバー負荷状態)を確認する事は出来ません。
ですのでまずは直接聞いて確認してみようと思いました。
ところが電話での問い合わせではなくメールでの正式な打診が必要ということでしたので、改めてお問い合わせメールを送信して、返事を待つ事になりました。
返答:アクセラレータによるキャッシュ機能
1日程経過してロリポップサーバーより返答がありました。
「アクセラレータ」によるキャッシュ機能が働いているのではないか?と。
最初に話した通りキャッシュはONにしたりはしていないのでそんなはずはない!と思っていました。
ところが結果として、コントロールパネル上のこのサイトのアクセラレータはONになっていました。なんじゃそら。
あわせて読みたい参考記事
自動でキャッシュがONになっていた
どうやら今回のサイトの開設時より、自動でこのアクセラレータ機能(キャッシュ機能)がONになっていたようです。
追記:実際は違います、見落としていただけです。
実際にコントロールパネルで確認してみると他のサイトは全てアクセラレータがOFFの状態になっているのに、このサイトだけONになっていました。何という事でしょう。
※この契約サーバーはWordpressを使わない通常のサイトばかりを集めて管理しているので、キャッシュは基本使わない様にしていました。
なので他のクライアントサイトは全てOFFなのです。
つまり今後はこの契約サーバーでサイトを開設した場合、自動でキャッシュ機能がONになった状態で始まる可能性があります。
更新をする頻度がそれ程無いサイトであれば問題はないと思うのですが、気を付けておかなければならないところですよね。勉強になりました。
ちゃんと確認しましょうね
思い込みは天敵
実は少し上のところで「別サーバーで検証したが、症状が改善されなかった」と書きましたが、そこのサイトのキャッシュ設定はOFFになっていました。
つまり検証していた時点では正常に動いていたはずなのです。
でもその時の自分にはきちんと動いている様には見えませんでした。phpの記述ミスなども重なったかも知れません。
心が穏やかでない時には解決できる事も解決できなくなる場合がある、という事なのでしょうね。
一番の原因は自身のメンタルだと思い知らされました。かなりこの問題に時間を費やしていたためです。
とにかくロリポップサーバーに限らず新しくサイトを開設する場合は気を付けましょう。
キャッシュ設定の部分を触っていなくても「今ONなのかOFFなのか」はきちんと確認しなければなりませんね。
2019年11月20日:追記
ロリポップレンタルサーバーの管理画面でドメインを新しく登録設定する時に、ドメイン名の下に「アクセラレータ」のチェックマークをON・OFFするところがありました。それは基本チェックが付いているON状態から始まります。
これを見逃していたんですね。大変失礼いたしました。
各サーバーのキャッシュ設定ページ例
ここで主なレンタルサーバーのコントロールパネルにあるキャッシュ制御のページを紹介します。
サイトを管理されている担当者は一度確認をしておきましょう。
思わぬサイトがON(あるいはOFF)になっている事があるかも知れません。
ロリポップレンタルサーバー
ロリポップサーバーのアクセラレータページ
hetemlレンタルサーバー
hetemlサーバーのコンテンツキャッシュページ
Xserver
Xserverのキャッシュ設定ページ