404 Not Found-Fehler beim Bereitstellen der Rails 3.2.12-App (mit Motoren) für den SUB-URI auf Nginx / Passenger

Wir müssen ein bereitstellenrails 3.2.12 app zusub uri nbhy auf einenubuntu 12.04 Server. Dasrails app hat 3engines und einer von ihnen istauthentify Das ist für die Benutzerauthentifizierung. Das Stammverzeichnis der Hauptanwendung verweist auf die Anmeldeseite der Authentifizierung. Hier ist die routes.rb in der Haupt-App:

  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'

Die App wird bereitgestellt, um uri zu stützennbhy läuft weiterubuntu 12.04 mitpassenger and nginx. Auf demselben Server läuft eine weitere Rails-App in einer eigenen Unter-URL. Hier ist die Konfiguration in der nginx.conf fürsub 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;
   }
}

Auch einsymlink nbhy wird erstellt umdocument root /var/www zeigt auf/var/www/nbhyop/current/public. Hier ist die Ausgabe derroot /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

Dasby ist derfirst Rails App im Einsatzsub URI und funktioniert gut.

Daslogin page wird nach der Eingabe angezeigthttp://6.95.225.93/nbhy. Nach Eingabe von Benutzer und Passwort wurde die Seite weitergeleitethttp://6.95.225.93/authentify/session mit404 Not Found Error. Es wurde ein Fehler in gefundennginx 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/"

Offensichtlich/var/www/authentify/session wird nicht die richtige Seite treffen, weil es die fehltbase uri nbhy zwischenwww undauthentify. Basierend auf unserer Analyse, diecreate imauthentify session controller wurde nicht getroffen und der Benutzer wurde auch nicht mit dem richtigen Benutzernamen und Passwort bei authentifizierthttp://6.95.225.93/nbhy.

Finden Sie auch heraus, dass ein Benutzer kannlogin beimhttp://6.95.225.93/nbhy/authentify/session/new mit einer gewissen Wendung. Nach dem Login wird die Seite weitergeleitet zuhttp://6.95.225.93/user_menus was rausschmeißen wird404 Not Found Error. Jedoch, wenn wir einfügennbhy dazwischen als:http://6.95.225.93/nbhy/user_menus, dann wird es das bringenuser menus page erfolgreich. Für weitere Links klicken, manuell einfügennbhy Lässt den Link funktionieren (wennnbhy wird vermisst).

Die Rails-App funktionierte gut, wenn sie ohne bereitgestellt wurdesub uri.

Warum fehlt die U-Bahn auf der Route? Gibt es einen Weg, wie wir das schaffen können?nbhy hier bleiben und den fehler beseitigen? Danke für die Hilfe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage