ぬにょす(挨拶)。
rails s した際に起動するサーバーであるところのPumaをゴニョゴニョします。
Puma側の設定
Railsプロジェクトディレクトリ配下の config/puma.rb を編集します。
## port をコメントアウト
#port ENV.fetch("PORT") { 3000 }
## 追記ここから
rails_root = Dir.pwd
bind "unix://" + File.join(rails_root, 'tmp', 'sockets', 'puma.sock')
pidfile File.join(rails_root, 'tmp', 'pids', 'puma.pid')
state_path File.join(rails_root, 'tmp', 'pids', 'puma.state')
stdout_redirect(
File.join(rails_root, 'log', 'puma.log'),
File.join(rails_root, 'log', 'puma-error.log'),
true
)
daemonize
## ここまで
Code language: Ruby (ruby)
Railsプロジェクトディレクトリで rails s するとPumaがデーモンとしてバックグラウンドで動きます。
Code language: plaintext (plaintext)$ bundle exec rails s => Booting Puma => Rails 5.2.2.1 application starting in development => Run `rails server -h` for more startup options Puma starting in single mode... * Version 3.12.1 (ruby 2.4.1-p111), codename: Llamas in Pajamas * Min threads: 5, max threads: 5 * Environment: development * Daemonizing...
Pumaを止めたい時は ps ax | grep puma や cat tmp/pids/puma.pid などでプロセスIDを調べて kill します。
Nginx側の設定
設定例を参考にして編集します。
upstream puma {
server unix:///home/hogehoge/hello-rails/tmp/sockets/puma.sock;
}
server {
server_name example.com;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://puma;
}
}
Code language: Nginx (nginx)
Nginxを再起動します。
Code language: plaintext (plaintext)$ sudo nginx -t $ sudo systemctl reload nginx.service
ブラウザでアクセスしたら、前と変わりなくRailsページが表示されました。
コメント