Ошибка 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
здесь остаться и устранить ошибку? Спасибо за помощь.