【AWS + Nginx + Unicorn】独自ドメイン設定

once upon a time……

スクールの課題で作成したオリジナルのWebアプリケーションを公開してもよいか、スタッフさんに確かめたところ、

むしろ独自ドメインつけちゃって後悔してみては!と背中を押されたので、

調子に乗ってAWSのRoute 53でドメインを発行し、割り当ててみました。


ドメインの取得と設定は以下を参考に。

AWS公式が珍しくわかりやすい。

ドメイン名を登録する方法 - アマゾン ウェブ サービス

Amazon Route 53でドメインを購入する | DevelopersIO

ドメインを購入してから発行まで、30分弱は待たされるのでお茶でも飲んで待ってましょう。ルピシアのシェラザードとか好きです。

あと今回は.comドメインを取得しました。とりあえず最初に年額の利用料で$12(2018年10月現在)、あとは利用状況に応じて諸々かかるみたいです。

お金についてはあまり怪しいこと書けないので、とりあえずAWS公式をどうぞ。

個人サイトで利用した際の体験談を載せてくださっている方もいますね、えらいなあ。

AWS Route53でドメインを取得する | ktykwsk.com

今回のアプリケーションはNginxを導入しているので、Nginxの設定ファイルも編集→再起動しましょう。

production環境に繋いだターミナルにて、アプリのいるディレクトリにまで移動し、下記のコマンドを実行。

[ec2-user@ip-~~~~~ アプリ名]$ sudo vim /etc/nginx/conf.d/rails.conf

開いた設定ファイル内のserver_nameを変更(ホスト名を入力)。

server_name www.discovermusiconfeelings.com;

ターミナルに戻り、変更を反映させるため、Nginxを再起動。

[ec2-user@ip-~~~~~ アプリ名]sudo service nginx restart

参考ページは以下。

【超初心者向け】AWSでたてたnginxサーバーにドメインを設定する

これでページは表示されるように。

しかし……アプリのホスト名が一致している時にイベント発火するよう設定していたJavaScriptが動かない。

イベント発火の条件をホスト名が一致するかどうかで判定していたため、ドメイン名変更の際にその記述を変えてデプロイまでしていたのに……と思っていたのですが、

検証ツールで見直すと、本番環境にその正規表現の変更が反映されていませんでした。

ということはデプロイ関係に問題があると推測。

解決策

Unicornについて同様の事例がないか調べ直すと、一度停止してから起動しないと反映されない変更があるとのこと。

nginx - rails4のnginx + unicornでデプロイ後、サイトが真っ白で表示されない(32583)|teratail

上記のコメント欄参照。

起動中のUnicornを止め、Capistranoで再デプロイのついでに起動すると、無事動くようになりました。

アプリケーションに変更を加えた際、Unicornの再起動が必要なパターンがいまいちわからない……。


今回ドメインを割り当てた自作Webアプリは以下になります。

Dm/F

遊んでいただけると幸いです。