ConoHaのVPSでRails5をドメインでデプロイするための最後の設定。ポート番号を使わない方法
ConoHaのVPSでRails5をドメインでデプロイするための最後の設定です。
1. nginxの設定
例えば hello_app という名前のrailsのアプリを作ったとしたら、それがアプリ名です。
このアプリ名を使っていきます。
この記事では仮に 「hello_app」 をアプリ名とします。
まずは
/etc/nginx/conf.d フォルダに、 hello_app.conf
というファイルを作ります。 ファイル名は何でも良いですが、アプリとの関連が分かるようにアプリ名にしておくと良いです。 (nanoエディタ等で作成しましょう)
hello_app.confの内容
upstream hello_app { #ここはアプリ名を使う。 #転送先(複数serverも列挙可) server localhost:3000; } server { listen 80; #ポート番号 server_name XXXX; # XXXXはホスト名です。取得したドメイン(○○○.comなど)を記入する。 root /○○○/○○○/hello_app/public # railsのアプリを置いた場所(ドキュメントルート)を記載。 /public まで書く。(そういうフォルダがある。) # 「/~」のリクエストに対する設定 location / { try_files $uri @hello_app; #ここもアプリ名を使用 } # リダイレクトの受け付け location / { # ヘッダー情報の定義 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; # hello_app (サーバーグループ)に転送 proxy_pass http://hello_app # ここが一番分かりにくいのですが、http://と書いたあとにアプリ名(ここでは hello_app)を書いて下さい。 } #エラーページの設定 error_page 500 502 503 504 /500.html; }
2. 不要な設定ファイルをコメントアウト
/etc/nginx/conf.d フォルダの同階層にsample.confというファイルがあるのですが、 上記で作った hello_app.confと競合してしまう可能性があるので、中身をすべて#でコメントアウトしておきましょう。(これが原因で、最初表示されませんでした。)
あとは、Railsのアプリがある階層に行き、
rails s
をすれば、ポート番号なしのドメイン名でアクセス出来ると思います。
以上です。お疲れ様でした。
※今回、セキュリティの設定やテスト環境/production環境の設定などは一切しておりません。 以下の書籍等を参考にしてみて下さい。
参考書籍: Ruby on Rails 5アプリケーションプログラミング 山田 祥寛 https://www.amazon.co.jp/dp/4774188832/ref=cm_sw_r_tw_dp_U_x_9MkAAbM6VRFZ7
参考サイト: 【CentOS 7】Nginx + Unicorn で Rails アプリケーションを本番環境で立ち上げる方法 - Qiita (「Nginx の設定ファイルを作成」)の部分が特に参考になります。