Ошибка 502 с nginx + Unicorn + Sinatra на Centos6

У меня есть коробка CentOS6, настроенная на Vagrant, и я пытаюсь запустить среду Sinatra + Unicorn + NGINX. Мой файл /etc/nginx/nginx.conf выглядит следующим образом:

upstream app1 {
    server unix:/tmp/app1.sock fail_timeout=0;
}
server {
    listen 80;
    server_name 192.168.33.10;

    location / {
    if (-f $request_filename) {
        break;
    }
        root /vagrant/workspace/public;
        proxy_pass http://app1;
        proxy_set_header Host $host;
    }
    location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
    expires 1y;
    }
}

и мой файл unicorn.rb выглядит следующим образом: @path = "/vagrant/workspace/"

worker_processes 1
working_directory @path
timeout 15
listen '/tmp/app1.sock' , :backlog => 64

pid "#{@path}tmp/pids/unicorn.pid"

stderr_path "#{@path}log/unicorn.stderr.log"
stdout_path "#{@path}log/unicorn.stdout.log"
preload_app true

и мое приложение Sinatra — это просто привет, мир, вот так:

require "rubygems"
require "sinatra/base"
require "sinatra/reloader" if development?
require "logger"
require "unicorn"

class MainApp < Sinatra::Base
    get '/' do
        "hello world"
    end
end

когда я пытаюсь подключиться к 192.168.33.10 из локальной сети, я получаю 502 Ошибка шлюза. Любые подсказки будут ох как полезны. Благодарю.


person kgtekito    schedule 07.02.2014    source источник
comment
проверьте журналы nginx cfr stderr_path и stdout   -  person mestachs    schedule 07.02.2014
comment
Похоже, ваша проблема в настройке единорога: возможно, приложение не запускается. У вас есть специальный файл журнала для единорога? вы запускали пакетную установку? взгляните на этот вопрос   -  person mestachs    schedule 07.02.2014
comment
извините, это была синтаксическая ошибка на unicorn.rb, где я пропустил косую черту в пути.   -  person kgtekito    schedule 07.02.2014
comment
Еще одна вещь, здесь пример кода говорит if development? и в моем stderr.log это говорит /vagrant/workspace/main.rb:3:in '<top (required)>': undefined method 'development?' for main:Object (NoMethodError), есть идеи?   -  person kgtekito    schedule 07.02.2014
comment
он должен быть определен в sinatra/base попробуйте Синатра.девелопмент?   -  person mestachs    schedule 07.02.2014
comment
Я бы рекомендовал не использовать Sinatra/Reloader, у него есть несколько ошибок. Вместо этого я рекомендую использовать дробовик или повторный запуск (как драгоценные камни, так и простые в использовании). У меня есть несколько примеров приложений, которые показывают, как установить/настроить модульное приложение sinatra, которое также поддерживает перезагрузку (например, github. com/prophittcorey/shorty) в дополнение к простой базе данных/ORM.   -  person    schedule 21.10.2014