Railsの標準ウェブサーバーWEBrickの手前にリバースプロキシサーバーとしてNginxを導入する方法についてメモします。
概要
ドメインの80番ポートへのアクセスをNginxに監視させ、Nginxはlocalhostの3000番ポートへアクセスを横流しするようにします。WEBrickはlocalhostの3000番ポートからのアクセスを監視し、アクセスを処理するようにします。
環境
- Vagrant
- OS: Ubuntu Server 14.04
- Nginx
- Rails
ステップ1. Nginxをインストールする
ステップ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サイトが表示されることを確認します。