Ruby on RailsをNginxで起動

Ruby on RailsをNginxで起動

Ruby on RailsアプリケーションをNginxで起動するには、一例として以下の手順を実行します。

1. Ruby on Railsアプリケーションの準備

Railsアプリケーションを作成して、必要な依存関係をインストールします。

gem install rails
rails new myapp
cd myapp
bundle install

2. Pumaサーバーの設定

Nginxをフロントエンドとして使用し、Pumaをバックエンドのアプリケーションサーバーとして使います。

GemfileにPumaを追加します。

gem 'puma'

Pumaの設定ファイルを生成して設定を変更します。

bundle exec puma config/puma.rb

config/puma.rbファイルの内容を確認し、必要に応じて編集します。

3. Nginxのインストールと設定

Nginxをインストールします。

sudo apt update
sudo apt install nginx

Nginxの設定ファイルを編集します。
デフォルトの設定ファイルをバックアップして、新しい設定を作成します。

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/myapp
sudo vim /etc/nginx/sites-available/myapp

設定ファイルに以下の内容を追加します。

server {
  listen 80;
  server_name your_domain.com;

  root /path/to/myapp/public;

  location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }

  location ~ ^/assets/ {
    expires max;
    gzip_static on;
  }
}

設定ファイルを保存して閉じます。

Nginxの設定をテストして、問題がなければNginxを再起動します。

sudo nginx -t
sudo systemctl restart nginx

4. Pumaの起動

Pumaサーバーを起動します。

bundle exec puma -C config/puma.rb

これで、NginxがPumaサーバーをリバースプロキシして、Railsアプリケーションを提供します。