Грешка 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 Gateway Error. Всякакви съвети биха били толкова полезни. Благодаря.


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, има няколко проблеми. Препоръчвам да използвате shotgun или rerun вместо това (както скъпоценни камъни, така и лесен за използване). Имам няколко примерни приложения, които показват как да настроя/конфигурирам модулно приложение sinatra, което също поддържа презареждане (напр. github. com/prophittcorey/shorty) в допълнение към проста база данни/ORM.   -  person    schedule 21.10.2014