无法启动unicorn,主进程启动失败,请检查stderr日志以获取详细信息。

17

我不知道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
请问 /var/www/demo/log/unicorn.stderr.log 中的 stderr 日志记录了什么?顺便说一下,您正在将 stdout 和 stderr 记录到同一个文件中。 - Frank C. Schuetz
没有这样的文件或目录 - /path/to/.unicorn.sock (Errno::ENOENT) - Pravin Mishra
1个回答

8
套接字是nginx和unicorn之间所有通信的“文件”通道。你在哪里定义它了?在我们的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如何访问Unicorn。第二部分实际上将请求路由到一个抽象位置"@unicorns",而"@unicorns"则在最后一部分中定义。这样,如果您有更复杂的Nginx路由设置,就可以重用@unicorns缩写。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接