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でもやってみようと思います。