Ошибка 404 Not Found при развертывании приложения rails 3.2.12 (с двигателями) в SUB URI на nginx / passenger

Нам нужно развернутьrails 3.2.12 app вsub uri nbhy наubuntu 12.04 сервер.rails app имеет 3engines и один из нихauthentify который для аутентификации пользователя. Основное приложение »корень, указывающий на аутентификациюстраница входа. Вот маршруты. Rb в основном приложении:

  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, работающее в своем собственном разделе. Вот конфигурация в 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 создается в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 а такжеauthentify, Основываясь на нашем анализе,create вauthentify session controller hasn»ударил, а пользователь неt был аутентифицирован даже с правильным именем пользователя и паролем в.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 пропал, отсутствует).

Приложение rails работало нормально при развертывании без.sub uri

Почему суб URI отсутствует в маршруте? Есть ли способ, которым мы можем сделатьnbhy здесь остаться и устранить ошибку? Спасибо за помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос