うめぼしジョイスティック - ivoice

CakePHP、JavaScript、jQuery等のプログラミングについて書いていきます 思考は、うめぼしのように硬く、そして柔らかく。

HerokuにRails5を独自ドメインでSSLでデプロイする方法(自分にしか分からないレベルのメモ)

HerokuにRails5をSSLでデプロイする方法です。

・アプリケーションはHerokuにデプロイ済みであること。

ドメイン名は仮に sample.com とします。

・CloudFlareを使います。

アプリ名は hello-appとします。

まず、CloudFlareで設定をします。

【完全無料】Herokuで独自ドメイン + HTTPSに対応する【Rails】 - Qiita

まぁぶっちゃけこれをそのまま行うだけです。上記のURLに書いてあることをすべて行って下さい。

ただ、CloudFlare上の設定で、SSLの設定を「Full」にしたつもりでも「Flexible」になっているので、確認してみて下さい。「Flexible」になっていたら「Full」に変えるだけです。

お名前.comなどでドメインがお名前.comのネームサーバーの設定になっている場合は、 ネームサーバーの設定(お名前.comのほう)でCloudFlareのネームサーバーに変えて下さい。(これも上のURLに書いてありますね)

また、Railsの config/environments/production.rb というファイルの

config.force_ssl = true (コメントアウトになっているもの) の、コメントアウトを外すのもポイントです。(これも上のURLに書いてありますね)

さて、このままだと、ドメインにアクセスしても「There's nothing here, yet.」と表示されるだけで、herokuには繋がるものの、アプリケーションが動きません。

そこで、Railsのプロジェクトに移動し、

ローカル環境のターミナルから

heroku login して、

heroku domains:add www.sample.com(ドメイン名) と打ちます。

wwwがついているのがポイントです。 (herokuは2018年現在ではwwwなしのルートドメインは設定できません。 色々やると今も出来るようですが今回は説明しません訂正。無料プランではwwwなしは無理でした。

そうすると 「heroku domains:wait 'www.sample.com'」をRUNしろ、とメッセージが出るので、

heroku domains:wait 'www.sample.com'

とターミナルに打ちます。

以上でRails5で、SSLで無料でherokuでデプロイが完了です。

最初のURLに書いてあった方法で大丈夫なのですが、自分が忘れない用にメモでした。(あと、万が一上のブログが消えると困るので)

そういえば、一番始めはConoHaのVPS(Cent OS)でデプロイをしていたのですが、ConoHaだとアプリを変更した場合に、いちいちログインしてRailsを止めて、pullしないといけないのかな?という運用面での疑問が出てきたのでHerokuにしてみました。 (この部分は本当に分かっていないです。)

全部無料で最初は運用できるという点も大きいです。 (Heroku無料プランは30分アクセスしないとSleepしてしまいますが)

しばらくこれで色々やってみて、慣れてきたらHeroku有料プランにするか、ConoHaでもやってみようと思います。