Nginx not detecting the root location from config for Rails 3.2 app

Here is the error.log of nginx server running on ubuntu 12.04.

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”

In /opt/nginx/conf/nginx.conf, it is configured as following:

server_name xxx.xxx.109.181;
root /ebs/www/;
passenger_enabled on;
rails_env production;
passenger_base_uri /mkl;

The root of nginx server is pointing to /ebs/www/. However the nginx is
accessing the /opt/nginx and throws out no such file error. What causes
the
problem? Thanks.

Posted at Nginx Forum:

“root” needs to point to the /public directory of your Rails app. And I
don’t think you need to use passenger_base_uri

My nginx using passenger config looks like:

server {
listen 80;
server_name XXXXXX;
root /home/deploy/apps/wtca/current/public;
passenger_enabled on;

Posted at Nginx Forum:

We use sub uri and symlink. That’s why passenger_base_uri is needed.

Posted at Nginx Forum: