我只是使用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进程时,它告诉我它正在侦听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
答案 0 :(得分:3)
没有rails 4的默认服务器是webrick,是的你应该使用puma for($i = 0;$i < count($unitsrow);$i++) {
$doitb = $db->prepare("UPDATE logins SET assigned = '0' WHERE id = :unitnum");
$doitb->bindParam(':unitnum',$unitsrow[$i]);
$doitb->execute();
}
答案 1 :(得分:0)
如果要重新启动Nginx
,则可以使用此命令:
sudo service nginx restart
如果要重新启动rails服务器(Puma),则命令应为:
RAILS_ENV=production puma -C config/puma.rb