<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:wfw="http://wellformedweb.org/CommentAPI/"
     >
  <channel>
    <title>mojavy.com</title>
    <link>http://mojavy.com/blog</link>
    <description></description>
    <pubDate>Thu, 13 Feb 2014 09:10:00 GMT</pubDate>
    <generator>Blogofile</generator>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>あなたのgithub pagesを無料で高速化する方法</title>
      <link>http://mojavy.com/blog/2014/02/13/faster-github-pages/</link>
      <pubDate>Thu, 13 Feb 2014 09:10:00 JST</pubDate>
      <category><![CDATA[web]]></category>
      <category><![CDATA[github]]></category>
      <guid isPermaLink="true">http://mojavy.com/blog/2014/02/13/faster-github-pages/</guid>
      <description>あなたのgithub pagesを無料で高速化する方法</description>
      <content:encoded><![CDATA[<p><img alt="github" src="/images/github-logo-transparent-200.png" /> </p>
<p>このブログはgithub pages上に構築していますが、github pagesに引きずられて自分のブログも重くなるということが時々ありました。</p>
<p>がんばってブログを書いた次の日にアクセスできなくなってたりすると悲しいので何とか高速かつ安定した配信をする方法ないかなーと思って調べてみたところ、なんとgithub pagesに置いたコンテンツをCDNから配信させることができるようになったらしいです!</p>
<p><a href="https://github.com/blog/1715-faster-more-awesome-github-pages">Faster, More Awesome GitHub Pages</a> </p>
<p>どういうドメインでgithub pagesを配信しているかによって対応方法は違うので以下を読んで各自適切な設定をして下さい。</p>
<p><strong>目次</strong></p>
<div class="toc">
<ul>
<li><a href="#github-pages-usernamegithubio">デフォルトのgithub pagesのドメイン( username.github.io ) を使用している場合</a></li>
<li><a href="#wwwexamplecom">カスタムサブドメイン ( www.example.com ) を使用している場合</a></li>
<li><a href="#apex-examplecom">Apexドメイン ( example.com ) を使用している場合</a><ul>
<li><a href="#comdnsimple">お名前.comからDNSimpleに移行する場合</a><ul>
<li><a href="#1-dnsimple">1. DNSimpleに登録する</a></li>
<li><a href="#2-dnsimplegithub-pages">2. DNSimpleでgithub pagesとの連携を開始する</a></li>
<li><a href="#3">3. ネームサーバの設定をする</a></li>
<li><a href="#4-dns">4. dnsの更新を確認する</a></li>
<li><a href="#5-cdn">5. CDNの確認</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#_1">その他参考</a></li>
<li><a href="#_2">まとめ</a></li>
</ul>
</div>
<h2 id="github-pages-usernamegithubio">デフォルトのgithub pagesのドメイン( username.github.io ) を使用している場合</h2>
<p>既に対応しています。
なにもやる必要はありません。</p>
<h2 id="wwwexamplecom">カスタムサブドメイン ( www.example.com ) を使用している場合</h2>
<p>CNAMEの向き先をusername.github.io に向けるだけで対応できます。</p>
<h2 id="apex-examplecom">Apexドメイン ( example.com ) を使用している場合</h2>
<p>Apexドメインというのはサブドメインでない基本のドメイン部分のことで、そこを直接github pagesにIPに向くようにAレコードに設定している場合です。</p>
<p>この場合はDNSのプロバイダがALIASレコードをサポートしていれば、ALIASが <code>username.github.io</code> を向くようにすることで対応できます。</p>
<p>ALIASレコードに対応していない場合は残念ながらCDNを有効にできません。ちなみにお名前.comはALIASには対応していないので、その場合は他のDNSプロバイダに移行するしかありません。</p>
<h3 id="comdnsimple">お名前.comからDNSimpleに移行する場合</h3>
<p>このブログは残念ながらお名前.comでApexドメインをgithub pagesのIPに向けていたのでDNSimpleに移行することにしました。以下はお名前.comからDNSimpleに移行した際の手順です。</p>
<p>なお、この場合はタイトルに反して無料ではありません。</p>
<p>(ちなみにここではドメインの移管はせずに、DNSの設定だけをDNSimpleに移しました)</p>
<h4 id="1-dnsimple">1. DNSimpleに登録する</h4>
<p>DNSimpleはユーザビリティに主眼を置いたDNSサービスのようで<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> 、APIでDNSレコードを更新したりAWSやHerokuやgithub pagesといったクラウドサービスとの連携が簡単にできます。</p>
<p><a href="https://dnsimple.com/r/4388f43fedebae">
<img alt="dnsimple" src="/images/dnsimple.png" /> </p>
<p><strong>DNSimple</strong>
</a></p>
<p>登録時に対象ドメインを聞かれるので、そのとき移行したいドメインを入力します。</p>
<p>ちなみに月額3ドルから<sup id="fnref:2"><a href="#fn:2" rel="footnote">2</a></sup> ですが30日は無料でつかえます。誰かを紹介すると、紹介した人とされた人の両方の無料期間が伸びます。上のリンクにはキャンペーンコードが埋め込まれているので、この記事を読んだ人はぜひ上のリンクから登録してください。</p>
<p>登録が完了するだけで一通りのUIが使えるようになりますが、DNS機能が有効になるのは決済情報を入力してからです。</p>
<h4 id="2-dnsimplegithub-pages">2. DNSimpleでgithub pagesとの連携を開始する</h4>
<p><a href="https://dnsimple.com/domains">dnsimpleの管理画面</a> に行くとServicesというボタンがあるのでそこからgithub pagesと連携を開始します。</p>
<h4 id="3">3. ネームサーバの設定をする</h4>
<p>お名前.com の以下のページの「他のネームサーバーを利用」からDNSimpleのネームサーバを指定します。</p>
<p><a href="https://www.onamae.com/domain/navi/ns_update/input?btn_id=navi_menu_domain_nsupdate_leftmenu_12">https://www.onamae.com/domain/navi/ns_update/input?btn_id=navi_menu_domain_nsupdate_leftmenu_12</a> </p>
<p>登録するサーバは以下です。</p>
<ul>
<li>ns1.dnsimple.com</li>
<li>ns2.dnsimple.com</li>
<li>ns3.dnsimple.com</li>
<li>ns4.dnsimple.com</li>
</ul>
<p><a href="http://support.dnsimple.com/articles/dnsimple-nameservers">参考 - DNSimple Name Servers</a> </p>
<p>この段階ではお名前.com側で設定しているAレコードはそのまま残しておきます。変更するのはネームサーバのみです。
そうしておかないと、ネームサーバの変更が伝搬するまでの間にお名前.comに問いあわせが来た場合NXDOMAIN扱いになってします。</p>
<h4 id="4-dns">4. dnsの更新を確認する</h4>
<p>更新前は以下</p>
<div class="pygments_borland"><pre>% dig mojavy.com
mojavy.com.             259     IN      A       207.97.227.245
</pre></div>

<p>もしくは以下</p>
<div class="pygments_borland"><pre>% dig mojavy.com
mojavy.com.             259     IN      A       204.232.175.78
</pre></div>

<p>のようになっていたはずですが、反映が完了すれば上記とは違うIPが返ってくるはずです。
反映までには時間がかかるので気長に待ちます。完全に反映されるには3日ほどかかるようです。</p>
<div class="pygments_borland"><pre>% dig mojavy.com
mojavy.com.             3600    IN      A       103.245.222.133

% dig taksatou.github.io
taksatou.github.io.     2973    IN      CNAME   github.map.fastly.net.
github.map.fastly.net.  15      IN      A       103.245.222.133
</pre></div>

<h4 id="5-cdn">5. CDNの確認</h4>
<p><a href="http://www.webpagetest.org/">webpagetest</a> のような計測ツールを使ってもいいですが、CDNからのレスポンスは<code>X-xxx</code>のようなヘッダがつくようなのでcurlでも確認できます。</p>
<div class="pygments_borland"><pre>% curl -v mojavy.com 2&gt;&amp;1  &gt; /dev/null  | grep &#39;X-&#39;
&lt; X-Served-By: cache-ty67-TYO
&lt; X-Cache: HIT
&lt; X-Cache-Hits: 5
&lt; X-Timer: S1392104522.668435574,VS0,VE0
</pre></div>

<p>もう完全に反映されたと思ったらお名前.com側で設定しているAレコードは無効にして大丈夫です。</p>
<h2 id="_1">その他参考</h2>
<ul>
<li><a href="https://help.github.com/articles/setting-up-a-custom-domain-with-pages">https://help.github.com/articles/setting-up-a-custom-domain-with-pages</a> </li>
</ul>
<h2 id="_2">まとめ</h2>
<ul>
<li>github pagesをつかえば無料でCDNから配信できる!</li>
<li>Apexドメインは慎重に使うべきだったという教訓を得た</li>
<li>DNSimple便利</li>
</ul>
<div class="footnote">
<hr />
<ol>
<li id="fn:1">
<p>The satisfaction of not having to use GoDaddy!  らしい&#160;<a href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p>
</li>
<li id="fn:2">
<p>登録ドメイン数に応じて自動的にプランが切りかわるようです。&#160;<a href="#fnref:2" rev="footnote" title="Jump back to footnote 2 in the text">&#8617;</a></p>
</li>
</ol>
</div>]]></content:encoded>
    </item>
  </channel>
</rss>
