【问题标题】:nginx server with Unicorn and Sinatra not logging crashes带有 Unicorn 和 Sinatra 的 nginx 服务器不记录崩溃
【发布时间】:2017-01-14 15:23:15
【问题描述】:

我有一个使用 Ruby、Sinatra、Unicorn 和 nginx 的服务器。我最近遇到了崩溃,在终端中运行时重新产生了这个问题,我可以看到它产生了这个崩溃日志:

/Users/Andrew/.rvm/gems/ruby-2.3.0/gems/tweetstream-2.6.1/lib/tweetstream/client.rb:449:in `block in connect': Failed to reconnect after 6 tries. (TweetStream::ReconnectError)
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:297:in `invoke_callback'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:269:in `rescue in schedule_reconnect'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:264:in `schedule_reconnect'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/em-twitter-0.3.5/lib/em-twitter/connection.rb:92:in `unbind'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:1483:in `event_callback'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:194:in `run_machine'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/eventmachine-1.2.0.1/lib/eventmachine.rb:194:in `run'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/thin-1.7.0/lib/thin/backends/base.rb:73:in `start'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/thin-1.7.0/lib/thin/server.rb:162:in `start'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/rack-1.6.4/lib/rack/handler/thin.rb:19:in `run'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1506:in `start_server'
    from /Users/Andrew/.rvm/gems/ruby-2.3.0/gems/sinatra-1.4.7/lib/sinatra/base.rb:1444:in `run!'
    from server.rb:234:in `<main>'

但是我之前在找错误日志的时候,找不到像上面这样的东西。

我的 /etc/nginx/nginx.conf 文件将其显示为日志的位置:

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

但是我去了这两个目录,访问日志只显示所有请求,正如我所期望的那样,错误日志是空的。

如果我的日志存储在其他地方,我如何确定它在哪里?或者如果由于某种原因没有记录崩溃,我如何确保它是?

【问题讨论】:

    标签: ruby nginx server sinatra unicorn


    【解决方案1】:

    我建议您在unicorn.rb 文件中为独角兽设置stderrstdout 日志。

    # set path to app that will be used to configure unicorn,
    # note the trailing slash in this example
    @dir = File.dirname(__FILE__) + '/'
    
    worker_processes 2
    working_directory @dir
    
    timeout 30
    
    # Specify path to socket unicorn listens to,
    # we will use this in our nginx.conf later
    listen "/home/vagrant/sockets/unicorn.sock", :backlog => 64
    
    # Set process id path
    pid "#{@dir}tmp/pids/unicorn.pid"
    
    # Set log file paths
    stderr_path "/var/log/unicorn/stderr.log"
    stdout_path "/var/log/unicorn/stdout.log"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 2013-02-01
      • 1970-01-01
      • 2012-02-01
      相关资源
      最近更新 更多