簡體   English   中英

使用Puma + Nginx時啟動Rails服務器的命令

[英]Command to start rails server when using Puma + Nginx

我只是使用Capistrano將Rails應用程序推送到遠程服務器。 該應用程序部署在deploy用戶的主目錄下- /home/deploy/my_app/current/

我正在將puma用作Web服務器,並將nginx配置為尋找一個套接字,它將所有傳入的Web流量轉發到該套接字。 我的Nginx網站配置文件中的代碼段-

upstream app {
    server unix:/home/deploy/my_app/shared/sockets/puma.sock fail_timeout=0;
}

相應地,我的puma.rb文件使用bind創建上述相同的套接字。

# config/puma

# Change to match your CPU core count
workers Integer(ENV["PUMA_WORKERS"] || 2)

# Min and Max threads per worker
threads 1, Integer(ENV["PUMA_MAX_THREADS"] || 5)

DEPLOY_ROOT = "/home/deploy/my_app"
app_dir = File.expand_path("../..", __FILE__)
shared_dir = "#{DEPLOY_ROOT}/shared"

# Default to production
port ENV["PORT"] || 3000
rails_env = ENV['RAILS_ENV'] || "production"
environment rails_env

# Set up socket location
bind "unix://#{shared_dir}/sockets/puma.sock"

# Logging
stdout_redirect "#{shared_dir}/log/puma.stdout.log", "#{shared_dir}/log/puma.stderr.log", true

# Set master PID and state locations
pidfile "#{shared_dir}/pids/puma.pid"
state_path "#{shared_dir}/pids/puma.state"
activate_control_app

on_worker_boot do
  require "active_record"
  ActiveRecord::Base.connection.disconnect! rescue ActiveRecord::ConnectionNotEstablished
  ActiveRecord::Base.establish_connection(YAML.load_file("#{app_dir}/config/database.yml")[rails_env])
end

最后一步是啟動我的Rails應用程序。 我應該使用什么命令來啟動它? 我試過了

SECRET_KEY_BASE=blahblahblah rails s -e production --daemon

但是,這並沒有在上述路徑上創建套接字。 我還嘗試通過打我的URL來確認這一點,nginx拋出了502錯誤的網關。

我應該改用puma -C config/puma.rb嗎? 有什么區別,我認為rails server無論如何都會啟動puma。 以及如何創建該套接字?

謝謝!

編輯:當我搜索正在運行的puma進程時,它告訴我它正在偵聽TCP端口。 我不確定與套接字有什么不同,但這可能是問題所在嗎?

[01:08:09] deploy:~  > ps aux | grep puma
deploy   12132  0.0  7.6 523736 78160 ?        Sl   00:59   0:00 puma 3.4.0 (tcp://localhost:3000) [/]
deploy   12314  0.0  0.0  14512   936 pts/0    S+   01:08   0:00 grep puma

否,Rails 4的默認服務器是webrick,是的,您應該使用puma -C config/puma.rb

如果要重新啟動Nginx則可以使用以下命令:

 sudo service nginx restart

如果要重新啟動Rails Server(Puma),則命令應為:

RAILS_ENV=production puma -C config/puma.rb     

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM