无法启动独角兽,高手未能启动,请查看stderr日志以获取详细信息

时间:2013-06-22 09:52:27

标签: ruby-on-rails nginx production-environment unicorn

我不知道unicorn.rb文件有什么问题。我的unicorn.rb配置是

APP_PATH = "/var/www/demo"
working_directory APP_PATH

stderr_path APP_PATH + "/log/unicorn.stderr.log"
stdout_path APP_PATH + "/log/unicorn.stderr.log"

pid APP_PATH + "/tmp/pid/unicorn.pid"

运行nginx成功。

sudo servier nginx start
sudo unicorn -c /var/www/demo/config/unicorn.rb -D

1 个答案:

答案 0 :(得分:7)

套接字是nginx和unicorn用作它们之间所有通信的通道的“文件”。你在哪里定义它?在我们的独角兽配置中,我们通常有这样一条线:

listen APP_PATH + "/tmp/pid/.unicorn.sock

然后,在你的nginx.conf中,你需要告诉nginx这个套接字,例如:

upstream unicorn {
  server unix:/var/www/demo/tmp/pid/.unicorn.sock fail_timeout=0;
}

location / {
  root /var/www/demo/current/public ;
  try_files $uri @unicorns;
}

location @unicorns {
  proxy_pass http://unicorn;
}

在这个配置文件中,第一部分定义了nginx如何到达独角兽。第二个实际上将请求路由到抽象位置“@unicorns”,而后者又在最后一节中定义。这样,如果你的nginx路由更复杂,你可以重用@unicorns简写。