我们需要在服务器上部署一个rails 3.2.12 app
to 。有3 个,其中一个用于用户身份验证。主应用程序的根指向 authentify 的登录页面。这是主应用程序中的 routes.rb :sub uri nbhy
ubuntu 12.04
rails app
engines
authentify
root :to => "authentify::sessions#new"
match '/signin', :to => 'authentify::sessions#new'
match '/signout', :to => 'authentify::sessions#destroy'
match '/user_menus', :to => 'user_menus#index'
match '/view_handler', :to => 'authentify::application#view_handler'
该应用程序部署到基于 urinbhy
运行ubuntu 12.04
的passenger and nginx
. 在同一台服务器上,另一个 Rails 应用程序在其自己的子 uri 中运行。这是 nginx.conf 中的配置sub uri nbhy
:
server {
listen 80;
server_name 6.95.225.93;
root /var/www/;
passenger_enabled on;
rails_env production;
passenger_base_uri /by;
passenger_base_uri /nbhy;
#for rails >=3.1, assets pipeline
location ~ ^/assets/ {
expires max;
add_header Cache-Control public;
add_header ETag "";
break;
}
}
在指向 时symlink
nbhy
也创建了a 。这是的输出:document root
/var/www
/var/www/nbhyop/current/public
root /var/www/
total 8
lrwxrwxrwx 1 cjadmin www-data 28 Nov 3 2012 by -> /var/www/byop/current/public
drwxrwsr-x 4 cjadmin www-data 4096 Nov 4 2012 byop
lrwxrwxrwx 1 cjadmin www-data 30 May 16 21:27 nbhy -> /var/www/nbhyop/current/public
drwxrwsr-x 4 cjadmin www-data 4096 May 14 15:21 nbhyop
这by
是first
部署到的rails应用程序sub URI
并且工作正常。
login page
键入后显示http://6.95.225.93/nbhy
。输入用户名和密码后,页面被重定向到http://6.95.225.93/authentify/session
错误404 Not Found
。在 中发现错误nginx
error.log
:
2013/05/13 16:29:25 [error] 2384#0: *1 open() "/var/www/authentify/session" failed (2: No such file or directory), client: 192.168.1.1, server: 6.95.225.93, request: "POST /authentify/session HTTP/1.1", host: "6.95.225.93", referrer: "http://6.95.225.93/nbhy/"
显然/var/www/authentify/session
不会打到正确的页面,因为它缺少base uri
nbhy
介于www
and之间authentify
。根据我们的分析,即使用户名和密码正确,用户也没有被命中,用户也没有通过身份create
验证。authentify session controller
http://6.95.225.93/nbhy
还发现用户可以login
在http://6.95.225.93/nbhy/authentify/session/new
一些扭曲。登录后,页面将被重定向到http://6.95.225.93/user_menus
会抛出404 Not Found
错误的页面。但是,如果我们在两者之间插入nbhy
: http://6.95.225.93/nbhy/user_menus
,那么它将user menus page
成功启动。对于任何进一步点击链接,手动插入nbhy
将使链接工作(如果nbhy
丢失)。
在没有sub uri
.
为什么路由中缺少 sub uri?有没有办法让我们nbhy
留在这里并消除错误?感谢帮助。