使用 puma nginx 和 capistrano 设置 ROR 应用程序

Posted

技术标签:

【中文标题】使用 puma nginx 和 capistrano 设置 ROR 应用程序【英文标题】:setup ROR application using puma nginx and capistrano 【发布时间】:2022-01-07 14:44:50 【问题描述】:

我正在尝试将 ruby​​ on rails 应用程序部署到 Amazon EC2 实例,使用 puma 作为应用程序服务器、nginx 服务器和 capistrano 进行部署。目前我遇到了错误消息:

nginx 日志没有显示任何错误,

puma 日志也没有显示错误原因

我已使用以下命令验证 puma 服务器已启动并正在运行:

ubuntu@ip-nnnnn:~$ ps aux | grep puma
deployer   89555  0.0  1.5 652040 248180 ?       Sl   21:48   0:00 puma 3.12.1 (unix://nnnn/nnn/current/tmp/sockets/puma.sock) [20211130214658]
deployer   89561  0.0  1.5 854804 259336 ?       Sl   21:48   0:00 puma: cluster worker 0: 89555 [20211130214658]
deployer   89566  0.0  1.5 787216 247824 ?       Sl   21:48   0:00 puma: cluster worker 1: 89555 [20211130214658]
ubuntu     89845  0.0  0.0   8168   740 pts/0    S+   22:23   0:00 grep --color=auto puma

capistrano 部署没有任何错误,所有任务都正常完成,在 capistrano 部署期间 puma 服务器重新启动正常。

应用程序日志没有最近的数据,看起来它没有达到那个点,它在那之前就中断了。

【问题讨论】:

也许您可以尝试以development 模式而不是production 进行部署,这样它将显示开发错误页面,其中包含更多详细信息而不是那个。虽然从该屏幕截图中应该有一些东西在应用程序的 log/ 目录中 @arieljuod 应用程序以development 模式部署。你知道我应该更改什么设置才能看到详细的错误页面吗? @arieljuod,经过一番谷歌搜索后,我似乎需要设置 config.consider_all_requests_local = true 才能看到完整的错误详细信息页面。 不以任何模式进行部署。 Capistrano 脚本决定了如何进行部署。 Rails 服务器的运行方式决定了您的应用程序运行的模式,您绝对应该在生产服务器上以生产模式而不是开发模式运行 Rails 服务器。其他的都是疯狂的 【参考方案1】:

在我的特殊情况下,这是由于停止了 REDIS 服务。应用程序被配置为使用 REDIS 进行缓存,但是 REDIS 服务没有运行。由于某种原因,这没有反映在日志中,我花了很多时间找出问题所在。

【讨论】:

以上是关于使用 puma nginx 和 capistrano 设置 ROR 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 puma nginx 和 capistrano 设置 ROR 应用程序

使用 SSL 和 Nginx 运行 Puma

使用 -d(守护进程)运行 Rails(Puma)时的 Nginx 502

ini 使用puma [ssl和non-ssl版本]为rails 4应用程序配置Nginx

运行 Puma 和 Nginx 的带有 AWS Elastic Beanstalk 的 Rails 应用程序 502

Puma 和 Nginx 502 Bad Gateway 错误(Ubuntu Server 14.04)