スポンサーリンク

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

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

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

※以下の説明で、「xxxx」とあらわされている部分は、自分の環境に合ったものが入るという前提です。

おし、んでは、しまっていこう。

●まずはドメインとサーバーを用意する(初心者はそんなことすらもわからないのである。)
サーバーはなんでもいい。さくらサーバーのスタンダードでもいいし、マネージドみたいな高級なやるでもいい。あるいはさくらサーバーじゃなくてもいい。自宅サーバーでもいいって感じだね。
もしくは、持っているのであれば、ドメインが、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サイト設定する、と始めるのが初心者ってもんだ。

そうすると「さくらのクラウド」にアカウントが作られたと思う。
用があるのは「ウェブアクセラレータ」なので、クラウドのTOPへ行って、「ウェブアクセラレータ」のボタンをクリックする。

設定が促されるはず。どんどん進み、設定をするわけだが、わけがわからない(笑)

「公開ドメイン名」が大事。wwwつけるかつけないかも含めて正しいドメインを設定する。
「オリジンサーバ」はサーバーのコンパネの「サーバー情報」にあるIPアドレス(IPv4:000.000.000.000って感じの数だけのやつ。000.000.000.000の部分を使う)、またはホスト名(xxxx.sakura.ne.jpみたいなやつ)。IPの方が確実っぽい。ホスト名にIPが振られている場合もあるが、それは使えない。IPアドレスのIPv4を使用する。
「デフォルトのキャッシュ期間」は、特別な理由が無い限りは無効にしておくようだ。最後の確認のときにx-cache:がHITになってくれなくてMissになってしまったのはこれが理由のようだった。

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

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

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

が必要になる。

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

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

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

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

xxxxxxxx.user.webaccel.jp.
webaccel=xxxxxxxxx.webaccel.jp
webaccel=xxxxxxxxxx.user.webaccel.jp
みたいなやつ

で、新情報
理屈としては、CNAMEに「xxxxxxxx.user.webaccel.jp.」っていうやつを設定するだけでOKとのこと。ただし、ダウンタイムが発生するのでものすごく注意。最低2時間はサイトがダウンすると思っていい。
TXTには、「webaccel=xxxxxxxxx.webaccel.jp」みたいなやつを設定するのは、事前承認のために使うらしい。つまり、稼働中のサーバーにウェブアクセラレーターを設定する場合、CNAMEが承認されるまでに時間がかかってしまいダウンタイムが発生するので、事前に承認できるTXTでウェブアクセラレーターに承認を通しておいて、それからCNAMEの変更をすればダウンタイムなしでウェブアクセラレーターを設定できる、っていうことのようだ。なので、TXTの設定は、ウェブアクセラレーターに通ってしまったら削除するのが好ましいということ。ちょっとのことでもみんながやるとDNSサーバーに負担がかかっちゃうからね。

このページが詳しい。サポートが教えてくれました。ありがとうございます。
【TIPS】ウェブアクセラレータをさくらのレンタルサーバで使ってみよう
https://manual.sakura.ad.jp/cloud/webaccel/manual/tips-settings-webaccel-for-rs.html
タイトルが「使ってみよう」なんていうノンキなものだから読み違えてしまうのだけれど、ダウンタイムなしに稼働中サイトにウェブアクセラレーターをあてがう手順書、というかなり重要ページなのだ。これでだいたい設定できるはずだが、スクリーンショットなんかが古いためにわかりづらいかもしれないが、手順は同じ。がんばってみよう

DNSの設定は、さくらのゾーンを使った場合だけれど、こんな感じ。
ダウンタイムを発生させないようにするには、上でリンクしたページの手順を熟読してみてくれ。
以下は公開前サイトの場合の設定例。

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

2.TXT これは新しく新規登録
エントリ名 @
タイプ TXT
データ(値) webaccel=xxxxxxxxx.webaccel.jp
TTL 300

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

完了したらTXTの設定は削除してもよいそうです。

3つのもう一個は(webaccel=xxxxxxxxxx.user.webaccel.jpみたいなやつね)、DNSアプライアンス用のもので、ゾーンまたは他社DNSでCNAMEだけで設定するならいらないようだ。さくらのDNSを使用する際に必要になるようです。なんで、もしいじることになってしまったら、参考までに。
この3つめのやつは違うとこのDNSをいじる。これが見つけづらいんだ。
ここからログイン。
https://secure.sakura.ad.jp/cloud/
アカウントを選んで、「ウェブアクセラレータ」へ…と行きたくなるところ、「グローバル」っていう方へ。これがマニュアルだとわからねえんだよ。
そんで「グローバル」「DNS」へ。
これまた見つけにくい「追加」ボタン。右上に「+追加」ってあるやつ。緑色。もうちょっと真ん中にでっかく置いてくれよ。

ゾーン名は必ずドメイン名で。(www.とかもあるなら含める)
タグとかアイコンは特に設定不要。

そしたら一覧にゾーンが追加されるので、それの「詳細」を見る。
これまた見づらいんだが、右端にプルダウン用の下向き三角ボタンがあるので、そっから「詳細」を選べる。もうちょっと見やすくしてくれー。
そしてさらに見づらい!「リソースレコード」っていうタブが左上にあるので、それをクリック。
右下の緑の「追加ボタン」で設定しよう。
値に入れるドメインは、ウェブアクセラレータを設定したときに、「ドメインの所有権を確認するため、有効にする際は事前に以下のいずれかを設定してください。」と赤く出るやつの中にあるはずだ。

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

設定したら「反映」ボタンを押す。そうしないと反映されない。
また、他社のドメインの場合は権限の移譲を明示しないといけないようで、ドメインに設定してあるDNSには

DNSサーバ名
[ns1.gslb×.sakura.ne.jp/ns2.gslb×.sakura.ne.jp]
※×は各DNSサーバに割り当てられた数字

と設定しないと1か月後に削除されることもあるようだ。
繰り返しになるが、このDNSの設定はCNAMEで出来ているならば不要ということで、ドメインのDNSが変更できて、DNSアプライアンスを使用する場合、という場合だ。ドメインのDNSが変更できるならば手軽な方法になるのかな。よくわかっておりません。

すべて設定したらしばらく待とう。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となっていると、なにかがおかしい。
だが焦らなくていい。もう一回リロードしてみよう!一回目は請求しただけで、その後設定され、2回目のアクセスから有効になるっていうことはよくあるもんだ。
それでもダメなら面倒でも初めから確認しなおそう。
「デフォルトのキャッシュ期間」有効になっていないだろうか?無効にしてみよう。

自動更新証明書
そして問題なく使えるようになったら、「Let's Encrypt 自動更新証明書を使用する」を有効にしておこう。Let’s Encryptなら使えるようだね。こうしておかないと、手動で更新するようになってしまい、更新するときに一回WEBサイトを閉じないといけなくなる。Let's Encryptの有効期限が3か月だったと思うから、3か月ごとにサイトを閉じて、SSLの更新をしないといけないのは致命的だ。ダウンタイムなしで更新してくれるようになるのでぜひ設定したい。(2021.01.28から使えるようになってたんだって。)

スポンサーリンク