0

运行 Ubuntu 12.10 x64、Nginx、Unicorn、Rails 4

bundle exec rake routes正确显示所有路由,但是当我访问任何路由(控制器/操作)时,它会超时(nginx 504)。当我打开任何静态 HTML 文件(公共目录)时,它工作正常。

尝试重新启动服务器、nginx、独角兽,安装了所有的 gem。我还缺少什么?

这是我的独角兽日志 http://pastebin.com/5BHzqCA9

4

1 回答 1

0

您必须将套接字文件添加到unicorn.rb配置文件并将其设置为侦听器。像这样的东西:

sock_file = "path/to/unicorn.sock"
......
listen sock_file

在您的 nginx conf 中,您需要:

upstream rails_server {
   server unix:/path/to/sock;
}
server {
 listen  80;
 server_name  example.com;
 root /path/to/public;
 access_log /path/to/log/nginx_access.log;
 error_page   500 502 503 504  /50x.html;
location = /50x.html {
     root   /path/to/public;
 }
try_files $uri, @rails;
 location @rails {
 proxy_pass http://rails_server;
 proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
 proxy_set_header Host $http_host;
 proxy_redirect off;
 }
}
于 2013-09-10T13:47:21.017 回答