Rails Nginxを導入する

Railsの標準ウェブサーバーWEBrickの手前にリバースプロキシサーバーとしてNginxを導入する方法についてメモします。

概要

ドメインの80番ポートへのアクセスをNginxに監視させ、Nginxはlocalhostの3000番ポートへアクセスを横流しするようにします。WEBrickはlocalhostの3000番ポートからのアクセスを監視し、アクセスを処理するようにします。

環境

  • Vagrant
  • OS: Ubuntu Server 14.04
  • Nginx
  • Rails

ステップ1. Nginxをインストールする

Nginxの導入(Vagrant + Ubuntu)


ステップ2. Nginxをリバースプロキシとして設定する

Nginxのサーバー設定ファイルの /etc/nginx/sites-available/default を開き、次のようにします。

server {
 listen 80 default_server;

 location / {
  proxy_pass http://localhost:3000;
 }
}

上では80番ポートにアクセスがあれば、すべて localhostの3000番に横流ししています。


ステップ3. WEBrickでlocalhostを待ち受ける

最後に Railsの標準ウェブサーバーWEBrickで、localhostの3000番へのアクセスを待ち受けるようにします。Railsはデフォルトで localhost:3000 を待ち受けるので特にIP指定は不要です。

$ rails server

明示的に localhost:3000 を書くと次のようになります。

$ rails server -b localhost -p 3000

ステップ4. 動作確認

ブラウザから http://ホスト名でアクセスし、Railsサイトが表示されることを確認します。