有没有人有一个很好的方法来管理带有capistrano的appserver?这似乎是留给你自己设备的情况,我还没有看到它的好例子。
我看到基本上有两种思路。
1)将其作为部署用户进行守护。优点,没有系统服务等,所以没有权限问题。然而,这就好像机器重新启动一样,导致系统崩溃。
2)初始化脚本。安装init脚本并使用它来管理服务器。这将重新启动,并允许说/etc/init.d/myapp重新启动/停止/启动控制,如果你ssh进入。这是不错的,除了两个原因
我正在尝试使用nginx +独角兽。 Nginx我完美地设定了。我已将网站添加到可用的网站,并将上游指向/ appserver / public。这非常有效,资产预编译效果很好,一切都很顺利,我可以重新部署并获得新的资产。它很简单,适用于OS init进程。但是我很幸运,因为nginx配置基本上是静态的,而nginx只需要提供静态文件。
appserver .. unicorn / thin / puma /无论是绊倒我的那个部分。我希望它重新加载cap部署的应用程序,但我很难找到一个足够好的例子。
总结。使用rails应用程序的一种简单方法是重新启动,并在调用cap deploy时重新加载
答案 0 :(得分:1)
如果您对Passenger
和nginx
或unicorn
使用thin
,则可以在touching tmp/restart.txt
file部署后重新启动:
task :restart do
on roles(:app), in: :sequence, wait: 5 do
execute :touch, release_path.join('tmp/restart.txt')
end
end
在部署后使用capistrano3-puma
重新加载puma
服务器:
的Gemfile:
gem 'capistrano3-puma'
Capfile:
require 'capistrano/puma'