【问题标题】:Deployment of Puma with Nginx and Capistrano使用 Nginx 和 Capistrano 部署 Puma
【发布时间】:2013-05-05 20:20:48
【问题描述】:

我在尝试使用 Puma 和 Nginx 部署 Rails 应用程序时遇到了一些问题。
我有一个常规的 Capistrano 设置,其中包含 puma/capistrano

当运行cap deploy:cold 时,它第一次运行得非常好。
在这个初始部署之后,我尝试通过cap deploy 部署我的更改,结果是

Bad response from server: 500  

在我尝试使用cap deploy:stop 后,我收到以下错误:

undefined method `split' for nil:NilClass  

当运行cap deploy:restart 时,结果:

no such file or directory - "/home/deployer/apps/teachmeo/shared/sockets/pumactl.sock"

所以,对我来说,重新部署的唯一方法是清理 /shared/sockets/ 目录并再次使用 cap deploy:cold

这里可能出了什么问题?

【问题讨论】:

  • Puma 对 JRuby 中的并发性有惊人的支持——这是我们选择 puma 的主要决定之一。 puma 通常默认带有这些部署任务 - 只是有些东西似乎已经出来了。
  • 我认为这是一个旧的 puma 错误,应该在 2.0.0 版本中修复 github.com/puma/puma/issues/192
  • 其实和这个问题有关github.com/puma/puma/issues/246

标签: nginx capistrano puma


【解决方案1】:

这是一个known issue,截至今天已修补 - 尽管我不相信包含该修补程序的新版本 puma 尚未发布。

如果您使用的是 Bundler,您可以通过以下方式专门安装补丁版本:

gem 'puma', :github => "puma/puma", :ref => "3d1eefbd7e9c72a5173fe017f1b4fe41204beba2"

【讨论】:

  • 最新的 gem 包含这个提交,但我仍然遇到同样的错误。我通过在 deploy.rb 中要求“puma/capistrano”来使用标准 puma。
【解决方案2】:

看到这个:Server deployments for Rails + Puma + Nginx + Capistrano 3

这是我自己编写的指南,详细介绍了服务器部署,包括完整的 nginxpuma 配置,也许将您的配置文件与它们进行比较可以帮助您更好地跟踪问题。

【讨论】:

    猜你喜欢
    • 2018-08-24
    • 2017-03-16
    • 2017-08-23
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2021-07-20
    • 2021-12-18
    • 2022-01-07
    相关资源
    最近更新 更多