スポンサーリンク

さくらのウェブアクセラレータ設定 やり方や注意点、エラーなど。

さくらのウェブアクセラレータ設定はすごい知識が必要、とかではないのだけれど、初心者がやるにはけっこう難しい。
マニュアルはあるのだけれど、すんなり出来る人が書いた感じた。ちゃんとは書いてくれているんだけれど、ちょーっと初心者にはわからない感じかな。
https://manual.sakura.ad.jp/cloud/webaccel/manual/usage-guidance.html

今回の例は、独自ドメインでSSLを使って行うものだ。
SSLがなければかなり簡単。ウェブアクセラレータのアカウント作って、DNSをいじって、サーバーに.htaccessを置くってだけ。
SSLがあるとハードルが上がる。順番とか間違えるとウェブアクセラレータの設定が有効にできない。
サブドメインにするならもっともっと簡単だ。画像とかJSファイルだけをサブドメインに置いて、そこにキャッシュさせるわけだ。それなら本ドメインではHTMLの画像リンクなどをサブドメインのものへ書き換えればいいので、ダウンタイムなしでもいける。むずかしい条件のときはサブドメインで考えるといいだろう。

●まずはドメインとサーバーを用意する(初心者はそんなことすらもわからないのである。)
サーバーはなんでもいい。さくらサーバーのスタンダードでもいいし、マネージドみたいな高級なやるでもいい。あるいはさくらサーバーじゃなくてもいい。自宅サーバーでもいいって感じだね。
もしくは、持っているのであれば、ドメインが、wwwなどがついているサブドメインになっているかどうかを確認してくれ。
どうやらwwwなどがついていないとCNAME設定ができないので、独自ドメインのままの利用はできないようだ。その場合は独自ドメインのままでない、他の方法でやろう。(画像とかのリソースファイルだけを、サブドメインを作ってそこに置く、とか。ぜんぜんやりようはある)wwwをつけとくとDBの書き換えなんかのときもけっこう役立つので、できるだけつけるようにした方がいいね。昔はつけない方がカッコイイとか思っちゃってたけど。

ゾーンアペックス(example.jpのようなサブドメインがない状態のURL)で運用中の場合CNAME設定ができないのでこの方式は利用できません。
https://manual.sakura.ad.jp/cloud/webaccel/manual/usage-guidance.html

もう一つ、サーバーの、ドキュメントルートに.htaccessを置けるか確認。ファイル内の記載はこんな感じ。

<Files ~ "\.(gif|jpe?g|png|ico|svg|css|js)$">
Header set Cache-Control "s-maxage=86400, public"
</Files>

この記述で、画像とスタイルシートとJavascriptなんかのリソースファイルをキャッシュさせます。もちろんhtmlもキャッシュさせてもいい。ただ、動的なものがあるときはやめた方がいい。フォームとかは記述したものがキャッシュされてしまうので大変だ。
86400というのは24時間の秒数です。1日の期限でキャッシュさせますってことですね。1日過ぎてアクセスがまたあったらキャッシュしなおします、ってことね。
もしhtaccessが使えなかったら使用は厳しい。他に方法があればいいのだけれど。

●とにかくドメインをサーバーに当てる。
さくらを例にするが、サーバーのコンパネでサーバーにドメイン設定をするとき、wwwありなしとか複雑なことはしないで、プレーンにドメインを素直に充てておこう。普通に設定すると、wwwがあってもなくてもアクセスできるよ、っていう設定になるはずだ。もう出来ている人は飛ばしてOK。
へんなことやるとウェブアクセラレータとつながらない。httpsへリダイレクトしたいなら、ウェブアクセラレータの設定にある「httpsリダイレクト」に任せればいいよ。
特にさくらサーバーでwwwありsslありでリダイレクトするとき、ドメインを2個設定するとかやるじゃん?あれがよくないみたいなのよ。
そしてドメインが染みるまでしばらく待つ。(20分くらいでいいかな)

●SSLを使うなら、設定する。無料のでもOK。
SSLを使うなら、ドメインが染みたことを確認できたら設定しておこう。さくらの無料のSSLでもぜんぜんOK。証明書をゲットするのがちょーーっと面倒だけれど。もう出来ている人は飛ばしてOK。

●アクセラレータのアカウントを準備
しばらく待っているあいだに、アクセラレータのアカウントを準備する。
ウェブアクセラレータのサイトに行き、コンパネに入る。さくらの「会員情報」が必要になるね。サーバーのログイン情報じゃないやつ。けっこう間違えるんだわ。

まずはサイトを追加する。アカウントと呼ばれてるね。サイトだとかアカウントだとかわけがわからなくなってくるよ。つまりはアカウントを作ったら、そのアカウントにサイトを複数登録できるわけだ。プロジェクトごとに複数のサイトがるときは、プロジェクト用にアカウントを作って、サイトどもを管理するということもできる。そんな予定がないなら、1アカウント作って、そのアカウントに1サイト設定する、と始めるのが初心者ってもんだ。

「公開ドメイン名」が大事。wwwつけるかつけないかも含めて正しいドメインを設定する。
「オリジンサーバ」はサーバーのコンパネの「サーバー情報」にあるドメインまたはIPアドレス
「デフォルトのキャッシュ期間」は、特別な理由が無い限りは無効にしておくようだ。最後の確認のときにx-cache:がHITになってくれなくてMissになってしまったのはこれが理由のようだった。

SSLを設定するなら、少し時間が経ってからの方がいい。ドメインが設定されたばかりだと、ドメインとサーバーが結びついているか確認できないから?かは、よくわからないけど、とにかく落ち着いて進めるのが確実。

●SSLのサーバー証明書をゲットする。
SSLのサーバー証明書は、さくらの新しいデザインのコンパネの方がとりやすい。

●サーバー証明書
●中間証明書(これはなくてもよい。中間証明書があるなら必要。さくらでSSL取ってたらあるよね)
●秘密鍵

が必要になる。

ウェブアクセラレータの管理画面の、サイトを選んで、そのサイトの設定に入る。
「SSLを登録」みたいなボタンを押す。
証明書を貼り付けて登録する。エラーが出るときがある。
未知の機関で発行された証明書だとか、証明書の発行に失敗しました、とか。
こういうときは、

●設定した公開ドメインがまちがっている。wwwがついてない、とか。
●なんかしらの理由でサーバーに到達できない。wwwあるなしでリダイレクトしてしまっているとか、DNSの設定を先にやっちゃってるとか。
●DNSをいじってて失敗してる。
●証明書と秘密鍵が間違ったもの使っている。さくらサーバーだったら管理画面から取得する。旧デザインだと証明書のダウンロードが表示されない。新デザインならあるんでそっちから取ろう。ブラウザから証明書をゲットする方法もある。そのときはBASE64で書き出す。
●SSLが実は設定した公開ドメインと違うものだったりする。SSLを一回サーバーから削除して、一から設定しなおしてみよう。

などなどを見直してみてくれ。

●サイトを設定すると、DNSは3ついじるように、赤字で表示される。
DNSっていうのは今更だけれど、アクセスするときに、このドメインはどのサーバーに行けばよいか、っていう住所録みたいなものを持ってくれているサーバーのことね。変更しますよ、ってお知らせすると、世界中のDNSサーバーが順々に変更かけていくので、48時間とか72時間とかかかるもんね。
ドメインの管理画面からDNSの設定ができるものもあれば、さくらは会員情報の管理画面から入るし、自宅サーバーなんかを使っていたらフリーDNSとかの管理画面から使うことになるでしょう。
とにかくDNS設定とか、そういう画面。設定する値はウェブアクセラレータの画面に表示されている3行。
DNSの設定は、さくらの場合だけれど、こんな感じ。

1.CNAME これは元からあるwwwを変更
エントリ名 www
タイプ CNAME
データ xxxxxxxx.user.webaccel.jp. ←最後にドットがついてるから注意ね。
TTL 300

2.TXT これは新しく追加
エントリ名 @
タイプ TXT
データ webaccel=xxxxxxxxx.webaccel.jp
TTL 300

とここまで。「エントリ名 @」なんてわかりづらいよね。これはさくらのゾーンっていう中での設定だから、他のサービスの場合はどうなるのかはアタシではわからない。。。
TTLはDNSの更新がされているかどうかをどんのくらいの感覚で確認するか、の秒数。ここでは5分ごとに更新するにしてある。1秒とかにしていると、セキュリティとしてよくないらしい。かと言って、3600とかになってて、1時間ごとになっちゃうと、変更するときに1時間後に確認、ってことになってしまうので遅すぎるのもよくない。すべての設定がうまくいって、めったに書き換えない、ってことになったら3600でも86400でもいいかもね。とりあえず何回もやることになるかもしれないので、300にしておくよいね。

↓さくらの例なので参考までに。

エントリ名 タイプ データ
 @  NS  ns1.dns.ne.jp.
 NS  ns2.dns.ne.jp.
 A  1xx.1xx.2xx.1xx
 MX  10 @
 TXT  "v=spf1 a:wwwXXXX.sakura.ne.jp mx ~all"
 TXT  "webaccel=XXXX.user.webaccel.jp" (TTL:300)
 www  CNAME  XXXX.user.webaccel.jp. (TTL:300)
 mail  CNAME  @
 ftp  CNAME  @

3つのもう一個は、違うとこのDNSをいじる。これが見つけづらいんだ。
ここからログイン。
https://secure.sakura.ad.jp/cloud/
アカウントを選んで、「ウェブアクセラレータ」へ…と行きたくなるところ、「グローバル」っていう方へ。これがマニュアルだとわからねえんだよ。
そんで「グローバル」「DNS」へ。
これまた見つけにくい「追加」ボタン。右上に「+追加」ってあるやつ。緑色。もうちょっと真ん中にでっかく置いてくれよ。

名前 _webaccel
タイプ TXT
値 webaccel=xxxxxxxxxx.user.webaccel.jp
TTL 300

設定したら「反映」ボタンを押す。そうしないと反映されない。
だがしかし!このDNSは設定してなくても使えたから、いらないのかも??これの必要性あったらコメントで教えてください。

●もしできないとき
できないときは、見直すことも大事なんだけれども、もう一回最初から、丁寧にやりなおした方がいいかも。
DNSとかSSLとか間違っていると、根本の問題になってしまうので原因がつかめない。それをごちゃごちゃやるよりも、やり直した方がいい場合がある。

●まずはウェブアクセラレータのドメインを登録したアカウントを削除。
●そしてサーバーの、ドメインにつけたSSLを削除。ドメインも削除してやりなおしたほうがいい。しかしさくらの管理画面で、新デザインだと削除したSSLがずっと残ってしまって再作成がなかなかできないことがあったのだが、旧デザインの方だとそんなことはお構いなしで再作成できた。新・旧の画面で、都合のよいほうを使うことになるのはちょっとまどろこしいが、全くできないよりは、どちらかに逃げ道があるという方がまだマシだ。
●DNSも元に戻す。履歴があるはずだから、見ればわかるはず。

1時間くらい休憩をしてから再度とりかかる。この1時間の休憩は大事。休憩あけは信じられないくらいうまくいくことが多い。魔法みたいに効く。

●確認
晴れてDNSの設定によりウェブアクセラレータも有効に出来て、SSLも登録できて、htaccessもセットしたなら、試しにサイトを見てみて、キャッシュされているか見てみよう。
ChromeかFirefoxで見るといいね。開発者ツールが使いやすいから。
F12キーを押して開発者ツールを開き、タブにある「Network」のところを開いてから、サイトを読み込む。
するとどんどんファイルだのが読み込まれていくのがわかるだろう。
そして画像のなんでもいい、一つ選択してみる。プロパティが出てくるはずだ。
「Request URL: https://.....」とか
「Request Method: GET」とか書いてある一覧が見えるだろうか。
その一覧の一つにx-cache:という項目がHITになっていれば成功!というわけだ。
MISSとなっていると、なにかがおかしい。確認しなおそう。
「デフォルトのキャッシュ期間」有効になっていないだろうか?無効にしてみよう。

スポンサーリンク