我正在使用 Unicorn 应用服务器在 Rails 应用程序上运行电子商务 ruby。ruby 版本是 2.0.0,rails 版本是 3.2.14。我将 Nginx 作为 Web 服务器运行。每当我将代码推送到服务器时,我都需要重新启动独角兽应用服务器,这会导致网站出现故障/哔哔声,我在谷歌上搜索了解决方案,但似乎没有任何效果。我之前使用过乘客,这很好。
有什么办法可以避免重启期间出现故障,从而保持零停机时间。
我正在使用 Unicorn 应用服务器在 Rails 应用程序上运行电子商务 ruby。ruby 版本是 2.0.0,rails 版本是 3.2.14。我将 Nginx 作为 Web 服务器运行。每当我将代码推送到服务器时,我都需要重新启动独角兽应用服务器,这会导致网站出现故障/哔哔声,我在谷歌上搜索了解决方案,但似乎没有任何效果。我之前使用过乘客,这很好。
有什么办法可以避免重启期间出现故障,从而保持零停机时间。
如果您将 USR2 发送给 unicorn master,它将导致 unicorn worker 重新启动,并且应该会导致零停机时间重新启动。使用以下命令发送 USR2 信号:
kill -s USR2 process-id-of-master-process
将 process-id-of-master-process 替换为 unicorn master 的数字进程 id(使用 ps agx | grep unicorn 找到它,或在 pids 文件夹中查找 unicorn.pid
请注意,如果 unicorn 在 Bundler 下运行,您仍然需要在更改 Gemfile 时进行冷重启,以便拾取新的 Gemfile。