質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

1回答

1676閲覧

【Rails】Nginx + Unicorn でデプロイしている Rails アプリのアプリケーションサーバーを Puma に変更するまでの手順を知りたい

koki0502

総合スコア19

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

1クリップ

投稿2020/08/19 01:41

編集2020/08/19 01:49

#実現したいこと
Nginx + Unicorn でデプロイしている Rails アプリのアプリケーションサーバーを Puma に変更したい。
現状下記の手順で行っているがデプロイまで行うことができないので、不足等あればご教示願います。

使用ツール
・Rails 5.2.4.1
・amazon linux 2
・nginx 1.12.2
・unicorn 5.6.0

##実行したこと
1.config/puma.rbの編集

port ENV.fetch("PORT") { 3000 }をコメントアウトし、
bind "unix://#{Rails.root}/tmp/sockets/puma.sock" を追記

rb

1#port ENV.fetch("PORT") { 3000 } 2bind "unix://#{Rails.root}/tmp/sockets/puma.sock"

2.Nginxの設定ファイル /etc/nginx/conf.d/testapp.conf の修正

upstream を unicorn から puma に変更

該当箇所

conf

1#upstream unicorn_server { 2# server unix:/var/www/rails/testapp/tmp/sockets/.unicorn.sock fail_timeout=0; 3#} 4 5upstream app_server { 6 server unix:/var/www/rails/testapp/tmp/sockets/puma.sock fail_timeout=0; 7}

上記ファイルの全体

conf

1# log directory 2error_log /var/www/rails/testapp/log/nginx.error.log; #自分のアプリケーション名に変更 3access_log /var/www/rails/testapp/log/nginx.access.log; #自分のアプリケーション名に変更 4 5upstream app_server { 6 server unix:/var/www/rails/testapp/tmp/sockets/puma.sock fail_timeout=0; 7} 8 9server { 10 listen 80; 11 client_max_body_size 4G; 12 server_name ドメイン名; #アプリのElastic IPに変更 13 14 keepalive_timeout 5; 15 16 # Location of our static files 17 root /var/www/rails/testapp/public; #自分のアプリケーション名に変更 18 19 location ~ ^/assets/ { 20 root /var/www/rails/testapp/public; #自分のアプリケーション名に変更 21 } 22 23 location / { 24 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 25 proxy_set_header Host $http_host; 26 proxy_redirect off; 27 28 if (!-f $request_filename) { 29 proxy_pass http://app_server; 30 break; 31 } 32 } 33 34 location /cable { 35 proxy_pass http://app_server/cable; 36 proxy_http_version 1.1; 37 proxy_set_header Upgrade websocket; 38 proxy_set_header Connection Upgrade; 39 proxy_set_header X-Real-IP $remote_addr; 40 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 41 proxy_set_header X-Forwarded-Proto https; 42 } 43 44 error_page 500 502 503 504 /500.html; 45 location = /500.html { 46 root /var/www/rails/testapp/public; #自分のアプリケーション名に変更 47 } 48}

上記の2点以外に必要な工程はございますでしょうか。
その他情報等有りましたら、ご教示頂けますと幸いです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

上記を実装後下記コマンドでアプリケーションを起動することができました。
rails s -e production

投稿2020/08/19 03:25

koki0502

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問