使用 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 应用程序
使用 -d(守护进程)运行 Rails(Puma)时的 Nginx 502
ini 使用puma [ssl和non-ssl版本]为rails 4应用程序配置Nginx