nginx没有将请求传递给unicorn.sock

时间:2015-04-30 22:13:53

标签: nginx unicorn

我正在尝试与Mina部署Rails应用程序。 Nginx返回默认页面。 Unicorn stderr.log已准备好2名工人。为什么nginx没有在unicorn.sock文件中发出请求?

upstream app {
    # path to unicorn SOCK file
    server unix:/home/deployer/APP/shared/sockets/unicorn.sock fail_timeout=0;
 }

server {
    listen *:80 default_server;

    root /home/deployer/APP/current/public;

    # Make site accessible from http://localhost/
    server_name localhost;

    try_files $uri/index.html $uri @app;

    location @app {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_pass http://app;
    }
}

http://blog.mccartie.com/2014/08/28/digital-ocean.html是我用过的教程。

我怎样才能使这个工作?感谢。

编辑:Unicorn.rb

# Set your full path to application.
app_dir = File.expand_path('../../', __FILE__)
shared_dir = File.expand_path('../../../shared/', __FILE__)

# Set unicorn options
worker_processes 2
preload_app true
timeout 30

# Fill path to your app
working_directory app_dir

# Set up socket location
listen "#{shared_dir}/sockets/unicorn.sock", :backlog => 64

# Loging
stderr_path "#{shared_dir}/log/unicorn.stderr.log"
stdout_path "#{shared_dir}/log/unicorn.stdout.log"

# Set master PID location
pid "#{shared_dir}/pids/unicorn.pid"

before_fork do |server, worker|
  defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
  old_pid = "#{server.config[:pid]}.oldbin"
  if File.exists?(old_pid) && server.pid != old_pid
    begin
      sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
      Process.kill(sig, File.read(old_pid).to_i)
    rescue Errno::ENOENT, Errno::ESRCH
      # someone else did our job for us
    end
  end
end

after_fork do |server, worker|
  defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end

before_exec do |server|
  ENV['BUNDLE_GEMFILE'] = "#{app_dir}/Gemfile"
end

0 个答案:

没有答案