CloudFlareを、ネームサーバお引っ越し無しにNSレコードを設定する形で使うには

Posted on October 09, 2014 at 16:15:20 UTC


CloudFlareとは

アレだよアレアレ。WP愛好家には欠かせないらしい(?)超有名CDN。

https://www.cloudflare.com/

CDNばかりが注目されるけど、DNSサーバとしての側面も持ってたりする。
でも、すでにドメインをガンガン使ってる人だとまるまる全部移すの嫌ですよね?
NSレコードであるゾーンだけCloudFlareに割り当てたいですよね?

要はこうしたい

"example.net"というドメインを持っていたとする。このドメインのネームサーバーは"dns1.example.com"と"dns2.example.com"になっている。また、何かのWebサイトを"hoge.example.net"でやっているとする。

高速化のために"hoge.example.net"にてCloudFlareを使いたい。指示に従うならネームサーバーを変える必要がある。でもネームサーバーを"aaaa1.ns.cloudflare.com"とか"aaaa2.ns.cloudflare.com"にお引越しするのはいやだ。そこで

hoge IN NS aaaa1.ns.cloudflare.com
hoge IN NS aaaa2.ns.cloudflare.com

というふうにできれば、"hoge.example.net"に関するものだけCloudFlareのネームサーバの内容が適用されるようになるはずである。
これでマトモに動けばハッピーエンドですね(死亡フラグ)。

NSレコードを使って追加するような感じにしたい

結論から言うとできる。
NSレコードをCloudFlareにて指定されたものに割り当てれば、ネームサーバ変更するよう警告でてるけど普通にCDNとして機能する。
CloudFlare settingsの中身がひと通り反映される。CSSとかJSとか普通にキャッシュされる。だがしかし…。

難点

CloudFlareはデフォルトではJSとかCSSとかしかキャッシュされないのは有名な話(アドレスの最後が拡張子っぽい文字列で終わるかどうかで判断している)。やっぱHTMLファイルとか他のファイルをキャッシュさせたいよね。

CloudFlareにはPage Rulesという劣化mod_rewriteのようなものがある。これを使うことでキャッシュの細かい制御ができるようになる

しかし、この機能は設定を最後まで終わらせる(ネームサーバをCloudFlareにて指定されたものに変える)まで有効にならない。しかもたちの悪いことに一応Page Rules設定画面には(アクセスしようと思えば)アクセスできるのである。有効化されてないからマジで意味ないけど。

あと、同様にAnalyticsとかも使えない。

どうすればいい?

1度でいいのでネームサーバをCloudFlareの指定したものに変更して、すべての設定を完了させればよい。その後はネームサーバを別のものに変更しても警告は出ない(たぶん)。あとはCloudFlareに対してはNSレコード貼っとくような形にでもしておけばよい。

ぶっちゃけ思うこと

この仕様だといろいろアレな感じがする。それとも僕が使い方間違ってるんですかね?


追記(2014/10/20)

しばらくこれで運用していたが、CloudFlareの状態がまた元に戻ってしまい再度アクティベートしなければならなくなった。定期的にチェックしているのだろうか?

面倒だ…。