【问题标题】:Having trouble debugging Sinatra app in production在生产环境中调试 Sinatra 应用程序时遇到问题
【发布时间】:2010-12-10 15:28:26
【问题描述】:

我正在使用乘客部署 Sinatra 应用程序。部署的应用程序正在运行,但并非完全正常:一些路径运行良好,另一些只是呈现空白页面。我似乎找不到有效的路线和无效的路线之间的任何主要区别,而且我似乎无法找到任何错误..

处理程序

我已将 not_found 和错误处理程序定义如下:

not_found do
  '404. Bummer!'
end

error do
  'Nasty error: ' + env['sinatra.error'].name
end

这些在我的本地机器上运行良好,无论是在开发还是生产中,但我从来没有看到这些出现在服务器上。

Apache 日志

当我跟踪 Apache 的 access.log 并点击其中一条损坏的路径时,我看到了 500:

helpers [27/Oct/2009:15:54:59 -0400] "GET /admin/member_photos/photos HTTP/1.1" 500 20 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"

rack_hoptoad

我还在我的 config.ru 中安装并配置了 rack_hoptoad 中间件,但没有例外将其添加到 hoptoad。

# Send exceptions to hoptoad
require 'rack_hoptoad'
use Rack::HoptoadNotifier, 'MY_API_KEY'

日志记录

我已经这样设置日志记录了..

set :raise_errors => true
set :logging, true

log = File.new("log/sinatra.log", "a+")
STDOUT.reopen(log)
STDERR.reopen(log)

require 'logger'
configure do
  LOGGER = Logger.new("log/sinatra.log") 
end

helpers do
  def logger
    LOGGER
  end
end

此设置允许我在我的路由中调用 logger.info,该路由在本地和服务器上运行以获取工作路由,但损坏的路径不足以调用 logger.info。

怎么办?

关于如何查看导致 500 错误的原因有什么想法吗?感谢您的帮助!

【问题讨论】:

  • 您尝试过在 httpd 上使用简单的应用程序吗?就像一个“世界有多低”的应用程序。只是得到'/'做; 'How low world';end 首先检查它,然后是你的应用程序。请在 httpd 和配置文件上检查您的简单应用程序。顺便说一句,我认为您无法在 sinatra 上获取一些 https 日志。

标签: ruby debugging sinatra passenger rack


【解决方案1】:

感谢您的回复,但我最终不需要使用它们。我最初是在sub-URI configuration 中部署应用程序。当我将应用程序部署到它自己的子域时,问题就消失了。

所以.. 我不太确定问题出在哪里,但摆脱这一行是我为该站点配置的 Apache 解决了问题:

Redirect permanent / https://www.example.org/admin/member_photos/

【讨论】:

    【解决方案2】:

    我会尝试使用 Rack::ShowExceptions 中间件来尝试找出问题所在。在您的 config.ru 中,在运行调用之前添加这两行:

    require 'rubygems'
    require 'your-app'
    
    use Rack::ShowExceptions
    
    run YourApp
    

    这应该捕获并显示 Rack 或您的应用程序中发生的任何异常的回溯。这应该会给你更多的细节来处理,至少这是希望。

    【讨论】:

      【解决方案3】:

      您的日志设置可能有问题?

      在运行 Sinatra 服务器时重定向 STDERR,以便您可以阅读它。喜欢:

      ruby myapp.rb -p 1234 > log/app.log 2>&1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-23
        • 1970-01-01
        • 2018-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多