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

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

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 の設定ファイルを作成」)の部分が特に参考になります。