Nginx没有从Rails 3.2应用程序的配置中检测根位置

时间:2014-03-21 09:58:10

标签: ruby-on-rails ruby-on-rails-3 nginx passenger

这是在ubuntu 12.04上运行的nginx服务器的error.log。

2014/03/17 12:47:17 [error] 7939#0: *1 open() "/opt/nginx/html/mkl/authentify/signin" failed (2: No such file or directory), client: xxx.xxx.228.66, server: xxx.xxx.109.181, request: "GET /mkl/authentify/signin HTTP/1.1", host: "xxx.xxx.109.181"

在/opt/nginx/conf/nginx.conf中,它配置如下(conf中唯一的服务器块):

  server {
    listen 80;
    server_name xxx.xxx.109.181;
    root /ebs/www/;
    passenger_enabled on;
    rails_env production;
    passenger_base_uri /mkl;
    .....
  }

nginx服务器的根目录指向/ ebs / www /。但是nginx正在访问/ opt / nginx并且没有抛出这样的文件错误。是什么原因造成的?感谢。

安装gem nginxpassenger-install-nginx-modulepassenger一起安装。

2 个答案:

答案 0 :(得分:2)

正确的root是您申请中的公共订单:

server {
  listen 80;
  server_name xxx.xxx.109.181;
  root /ebs/www/YOUR_APPLICATION/current/public;
  # e.g. root /var/www/vhosts/example.com/httpdocs/example/current/public;
  passenger_enabled on;
  rails_env production;
  passenger_base_uri /mkl;
  .....
}

答案 1 :(得分:1)

在nginx.conf中的第一个(唯一)服务器块之后再添加一个server {}块后,问题得以解决。在以前的版本(可能是1.4.x)中,nginx.conf中有2个服务器块。在当前版本中,只有一个服务器{}块。

可以在Why is nginx responding to any domain name?& https://serverfault.com/questions/416064/rails-application-only-showing-nginx-default-page