【问题标题】:Rails: use Capistrano to deploy, how to check log when error happens?Rails:使用 Capistrano 部署,发生错误时如何检查日志?
【发布时间】:2016-10-21 00:01:14
【问题描述】:

我正在远程 Ubuntu 14.04 服务器上使用 Capistrano 部署 rails add。

最后当我重启nginx时,网页显示错误

很抱歉,出了点问题。

我希望知道是什么原因导致错误,我可以使用什么命令从远程服务器查看日志

【问题讨论】:

  • 你 ssh 到服务器并从 rails 根目录运行 tail log/production.log
  • @max 我试过了,但是它显示tail: cannot open 'log/production.log' for reading: No such file or directory,但是在/shared/log文件夹中,有一个空的production.log文件,这里发生了什么?
  • @MarcoSong 同样的问题,你解决了吗?

标签: ruby-on-rails nginx capistrano


【解决方案1】:

试试

bundle exec tail -f log/production.log

如果那里没有看到错误,那么首先检查你的 nginx 日志

tail -f /var/log/nginx/access.log
or
tail -f /var/log/nginx/error.log

如果您在那里看到一些请求记录,则表示请求正在到达服务器并且它没有传递到 puma 服务器。

请求没有被传递给 puma 的原因可能有两个,要么是你的 puma 进程地址在 nginx 文件中不正确,要么 puma 服务器没有运行,或者有一些错误,当请求到达时 puma 被关闭。

查看 puma 进程使用此命令

ps aux | grep puma

它应该打印多行中的一行

app      22528  0.1  0.5 296532 23912 ?        Ssl  16:42   0:00 puma 2.11.1 (tcp://0.0.0.0:8080) [20180110213633]

现在使用这些信息我可以在 nginx 中映射这样的地址

upstream app {
     # Path to Puma SOCK file, as defined previously

    server 0.0.0.0:8080;

 }

这里我将 puma 本地 ip 与端口绑定到 nginx 进程。

确保您的 puma.rb 正确绑定到 puma.sock 文件,因为我在 config/puma.rb 中正在这样做的项目之一

 bind "unix:///Users/Apple/RAILS_PROJECTS/tracker/tmp/sockets/puma.sock"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    相关资源
    最近更新 更多