現在、契約しているレンタルサーバー「Xbit」より、先日、「システムのバージョンアップをするので希望者は新サーバーに移行できますよ~」という案内が来ました。
待ってました!
これでようやくWordpressの最新バージョンが使えるぜ!
(PHPのバージョン制約で、Wordpress3.1.4までしか使えなかったのです)
さっそく申し込みをして、数日前に「ネームサーバーの切り替えが完了しました」という内容のメールを受け取りました。
そろそろサーバー上のWordpressのバージョンアップをしようかなあと思っていた矢先のこと、何気なくCSSの一部修正していたら…。あれ?変更したはずのスタイルが効いていない…。てっきりCSSの記述に問題があるのかと思い、いろいろ変更してみても、表示内容が一切変わりません。んん?
FTPのアップロード先を間違えているのかなと思い、確認してもちゃんと更新されています。しばらく悩んだあとに、ブラウザのアドレスバーにCSSファイルのURLを直接叩いてみたところ…、
あら?古いまま?
更新されていない…。
どういうこと?
FTPで確認したときはちゃんと変わっていたのに?
あきらかにブラウザで参照しているファイルとFTPで確認したファイルが別々です。ブラウザのキャッシュか?と思いキャッシュ削除してもダメ。そこでようやく思い至ったのが、サーバー移行したばかりだという事実。
FTPでは新サーバーに接続できて、ブラウザでは旧サーバーを見に行ってるんじゃないかと。そこで、FTPで旧サーバーに接続してファイルを更新したところ…、ビンゴです。ブラウザ上でもしっかりと表示が変わりました。
「ネームサーバー切り替え直後だからしょーがないかあ…。」と思ったものの、FTP接続などではちゃんと名前解決されている事実にまるで気づかず。
そんな折、リモートデスクトップで遊んでいたCentOS6から何気に問題のサイトにアクセスしたら、ちゃんと新サーバーにアクセスしているじゃないですか。DNSが浸透したのかと思い、喜び勇んでメインPCでアクセスしたら、やっぱり変わっていない…。えー?そこで、MacBookでも確認。おお、ちゃんと新サーバーにアクセスしている。
ということは…。メインPCだけ、旧サーバーを見ている!! そんなことってあるの?
調べてみると、「DNSリゾルバ・キャッシュ」というのがWindowsにはあるらしい。おお、怪しい。とっても怪しい。
DNSリゾルバ・キャッシュとは、
DNSリゾルバ・キャッシュってゆーのは、DNS サーバへ問い合わせた結果 (名前解決の情報) をシステム内部にキャッシュしておいて、DNS
サーバへの問い合わせを抑制する機能の事。
参考:DNSリゾルバ・キャッシュを消去する @WT -Windows Tips-|Replog!株式会社レップワンスタッフによるブログです
というものらしいです。そんな機能があったとは知らなかった。
しかし、内容的にもこれが悪さしているならば辻褄が合います。
ん?
キャッシュに保持される時間は、DNSサーバから返されたレコードに指定されている TTL (Time To Live)の時間に依存。ただし有効期間の最大値はデフォルトのままなら 1日 (86,400秒) に制限されてるので、1日以上経過すれば、元のDNSレコードの TTL にかかわらず、キャッシュから破棄 される。否定応答の場合は、最大300秒保持される。
参考:DNSリゾルバ・キャッシュを消去する @WT -Windows Tips-|Replog!株式会社レップワンスタッフによるブログです
あれ?もうすでに数日経っているような…。PCの再起動も何回かしているような…。
いやいや、とにかくこのキャッシュを消してしまえばいいのだ。
ということで、コマンドプロンプトにて以下を実行。これでDNSリゾルバ・キャッシュを削除できます。
C:\>ipconfig /flushdns
ちなみに、内容を確認するときは、
C:\>ipconfig /displaydns
です。
これで万事解決!!と思いきや、全然変わらず。な、なぜ!?
結論から言いますと、hostsの書き換えがすべてでした。嗚呼…。
なぜかhostsに旧サーバーIPへの記述がありました。これ、記述した記憶が全くないんですけど。hostsに書き込む理由がないし。どういうことなのか…。
とにかく、hostsで設定されていたら、そりゃいつまでたっても新サーバーには向きませんよね…。
今回は、DNSリゾルバ・キャッシュというものを知りました、という話。