当我尝试使用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
这可能会出错?
这是一个known issue,截至今天已被修补 - 虽然我不相信包含该补丁的新版puma已经发布。
如果您使用的是Bundler,则可以使用以下方法专门安装修补版本:
gem 'puma', :github => "puma/puma", :ref => "3d1eefbd7e9c72a5173fe017f1b4fe41204beba2"
见:Server deployments for Rails + Puma + Nginx + Capistrano 3
这是我自己编写的指南,详细介绍了服务器部署,包括完整的nginx
和puma
配置,也许将配置文件与它们进行比较可以帮助您更好地跟踪问题。