Błąd 404 Not Found podczas wdrażania aplikacji szyny 3.2.12 (z silnikami) do SUB URI na nginx / passenger

Musimy wdrożyć arails 3.2.12 app dosub uri nbhy naubuntu 12.04 serwer. Therails app ma 3engines i jeden z nich jestauthentify który służy do uwierzytelniania użytkowników. Główny root aplikacji wskazujący na uwierzytelnianie strony logowania. Oto trasy.rb w głównej aplikacji:

  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'

Aplikacja jest wdrażana do podstawowego urinbhy kontynuowaćubuntu 12.04 zpassenger and nginx. Na tym samym serwerze działa kolejna aplikacja szyny we własnym sub-uri. Oto konfiguracja w nginx.conf dlasub 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;
   }
}

Również asymlink nbhy jest tworzony wdocument root /var/www wskazując na/var/www/nbhyop/current/public. Oto wyjścieroot /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

Theby jestfirst aplikacja szyny wdrożona wsub URI i działa dobrze.

Thelogin page jest wyświetlany po wpisaniuhttp://6.95.225.93/nbhy. Po wprowadzeniu klucza użytkownika i hasła strona została przekierowana dohttp://6.95.225.93/authentify/session z404 Not Found błąd. Wystąpił błąd wnginx 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/"

Oczywiście/var/www/authentify/session nie trafi na właściwą stronę, ponieważ brakuje jejbase uri nbhy pomiędzywww iauthentify. Na podstawie naszej analizycreate wauthentify session controller nie został trafiony, a użytkownik nie został uwierzytelniony nawet przy użyciu prawidłowej nazwy użytkownika i hasłahttp://6.95.225.93/nbhy.

Dowiedz się także, że użytkownik możelogin whttp://6.95.225.93/nbhy/authentify/session/new z pewnym zwrotem akcji. Po zalogowaniu strona zostanie przekierowana dohttp://6.95.225.93/user_menus który wyrzuci404 Not Found błąd. Jeśli jednak wstawimynbhy pomiędzy jako:http://6.95.225.93/nbhy/user_menus, to spowoduje wyświetlenieuser menus page z powodzeniem. Aby uzyskać więcej informacji, kliknij linki, ręcznie wstawiającnbhy sprawi, że link zadziała (jeślinbhy brakuje).

Aplikacja szyny działała dobrze podczas wdrażania bezsub uri.

Dlaczego brakuje suburi w trasie? Czy istnieje sposób, w jaki możemy to zrobićnbhy tu zostać i wyeliminować błąd? Dzięki za pomoc.

questionAnswers(2)

yourAnswerToTheQuestion